Are private constants possible in PHP?
constants, php, private
Solution
The answer is a simple "no". PHP doesn't support this concept. The best you can do is a `private static` variable in the class, which isn't as good of course because it's not readonly. But you just have to work around it.
Edit
Your question got me thinking - here's something I've never tried, but might work. Put another way "this is untested". But say you wanted a "private constant" called `FOO`:
// "Constant" definitions
private function __get($constName){
// Null for non-defined "constants"
$val = null;
switch($constName){
case 'FOO':
$val = 'MY CONSTANT UNCHANGEABLE VALUE';
break;
case 'BAR':
$val = 'MY OTHER CONSTANT VALUE';
break;
}
return $val;
}
Of course your syntax would look a bit odd:
// Retrieve the "constant"
$foo = $this->FOO;
...but at least this wouldn't work:
$this->FOO = 'illegal!';
Maybe something worth trying?
Cheers
Problem
PHP does not allow ``` class Foo { private const my_private_const; ``` but of course allows ``` const my_const; ``` So in effect constants are global because I can access `my_const` anywhere using `Foo::my_const` Is there a way to make private constants?