Today a colleague of mine ask me if it is possible to call a class constant inside of another class by generating the constant name on the fly. The reason was, that he had multiple constants in one class that had patterned / generic names like that:
<?php class IAM_A_CLASS{ const IAM_A_CONSTANT_1 = 1; const IAM_A_CONSTANT_2 = 2; const IAM_A_CONSTANT_3 = 3; }
And he wanted to address them like that:
<?php $iNumber = 1; // or 2 or 3 $sConstName = IAM_A_CLASS::IAM_A_CONSTANT_.$iNumber; var_dump($sConstName); // => should be resolved to 1,2 and 3
And, what should I tell you?  PHP hast such great functionality! 😉 The constant command:
<?php $sPrefix = 'IAM_A_CLASS::IAM_A_CONSTANT_'; for($i=3; $i > 0; $i--){ echo constant($sPrefix . $i) . "\n"; }
The result is:
3 2 1
So yes, it is possible.
Further information about the constant command:
Can be found under http://php.net/manual/de/function.constant.php.