|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2013-01-11 00:46 UTC] aharvey@php.net
[2013-01-11 00:46 UTC] aharvey@php.net
-Status: Open
+Status: Duplicate
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 31 23:00:01 2025 UTC |
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.