Edit report at https://bugs.php.net/bug.php?id=63959&edit=1

 ID:                 63959
 Updated by:         [email protected]
 Reported by:        kevin at happycactus dot nl
 Summary:            Class constant assignment doesn't make sense
-Status:             Open
+Status:             Duplicate
 Type:               Feature/Change Request
 Package:            Variables related
 Operating System:   Windows Server 2012 Standard
 PHP Version:        5.4.10
 Block user comment: N
 Private report:     N

 New Comment:

Duplicate of request #30177.


Previous Comments:
------------------------------------------------------------------------
[2013-01-10 11:00:20] kevin at happycactus dot nl

Description:
------------
We have to work around certain unnecessary limitations regarding class 
constants.
See 'Test script' for complete details on what bothers me (and other PHP 
developers)

Test script:
---------------
// Example 1: valid
const IMAGE_ROOT = '/www/public/img';

// Example 2: valid
define ('PUBLIC_ROOT', '/www/public');
define ('IMAGE_ROOT', PUBLIC_ROOT . '/img');
const FOO = IMAGE_ROOT;

// Example 3: invalid
define ('PUBLIC_ROOT', '/www/public');
const IMAGE_ROOT = PUBLIC_ROOT . '/img';

According to the manual:
"The value must be a constant expression, not (for example) a variable,
a property, a result of a mathematical operation, or a function call."

My question is: why is the concatenation of one or more CONSTANT values
prohibited in PHP? It doesn't have any added value, and even worse: makes
source code less readable because we have to clutter it with defined named 
constants or replace them with static properties as means of a workaround.



------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=63959&edit=1

Reply via email to