Если вы очень сильно хотели эту функцию, вы могли бы написать небольшой код, используя relfection, который находит все константы и их значения.Затем устанавливает их в переменную типа $ CONSTANTS ['CONSTANT_NAME'] ... это будет означать, что если вы когда-нибудь захотите поместить константу в строку, вы можете использовать {}.Кроме того, вместо того, чтобы добавлять их в $ CONSTANTS, сделайте его классом, реализующим доступ к массиву, чтобы вы могли гарантировать, что значения в нем не могут быть изменены каким-либо образом (только новые элементы добавляются к объекту, к которому можно обращаться как к массиву).
Таким образом, его использование будет выглядеть следующим образом:
$CONSTANTS = new constant_collection();
//this bit would normally be automatically populate using reflection to find all the constants... but just for demo purposes, here is what would and wouldn't be allowed.
$CONSTANTS['PI'] = 3.14;
$CONSTANTS['PI'] = 4.34; //triggers an error
unset($CONSTANTS['PI']); //triggers an error
foreach ($CONSTANTS as $name=>$value) {
.... only if the correct interface methods are implemented to allow this
}
print count($CONSTANTS); //only if the countable interface is implemented to allow this
print "PI is {$CONSTANTS['PI']}"; //works fine :D
Чтобы сделать так, чтобы у вас было всего несколько дополнительных символов для ввода, вы можете просто использовать $ C вместо $ CONSTANTS;)
Надеюсь, это поможет, Скотт