|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #63959 Class constant assignment doesn't make sense
Submitted: 2013-01-10 11:00 UTC Modified: 2013-01-11 00:46 UTC
Avg. Score:4.5 ± 0.5
Reproduced:2 of 2 (100.0%)
Same Version:2 (100.0%)
Same OS:0 (0.0%)
From: kevin at happycactus dot nl Assigned:
Status: Duplicate Package: Variables related
PHP Version: 5.4.10 OS: Windows Server 2012 Standard
Private report: No CVE-ID: None
 [2013-01-10 11:00 UTC] kevin at happycactus dot nl
We have to work around certain unnecessary limitations regarding class constants.
See 'Test script' for complete details on what bothers me (and other PHP 

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');

// 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.


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2013-01-11 00:46 UTC]
Duplicate of request #30177.
 [2013-01-11 00:46 UTC]
-Status: Open +Status: Duplicate
PHP Copyright © 2001-2021 The PHP Group
All rights reserved.
Last updated: Mon Mar 01 13:01:24 2021 UTC