Since const
is parsed at compile-time, you can’t use expressions in namespace constants, but you can use define
as long as the name argument is the full name from the global scope (run this):
namespace Foo\Bar;
const CONST1 = 1;
define('CONST2', 1 + 1); // global
define(__NAMESPACE__ . '\\CONST3', 1 + 1 + 1); // in namespace!
echo CONST1, " ", \CONST2, " ", CONST3; // echos '1 2 3'
The bad: PHPStorm comprehends const
and global define
s, but not define(__NAMESPACE__ . '\\CONST', $value)