Можно ли в php задать массив в качестве константы?
class A { const CONST_NAME = array('x' => 'example'); }
У меня на php 5.4 возникает ошибка:
Fatal error: Arrays are not allowed in class constants
|
Можно ли в php задать массив в качестве константы? class A { const CONST_NAME = array('x' => 'example'); } У меня на php 5.4 возникает ошибка:
|
|||
|
|
Начиная с версии php 5.6 можно задать массив в качестве константы. В версии 5.6+ в константах стали доступны выражения. Константа может быть представлены выражением скалярного типа (целое или дробное число, строка), а также в виде массива, который относится к смешанным нескалярным типам данных. Читать подробнее о нововведениях php 5.6. Примеры объявления констант, которые будут работать в php 5.6+, но будут вызывать фатальную ошибку в более ранних версиях: class A { const C1 = 60*60*24; const C2 = self::C1 * 2; const C3 = array(); const C4 = array('значение1', 'значение2'); } Примеры с вызовами констант: const ONE = 1; class B { const FIVE = ONE + 4; const SENTENCE = 'Значение FIVE = ' . self::FIVE; public function f($a = ONE + self::FIVE) { return $a; } } echo (new B)->f()."\n"; echo B::SENTENCE; // результат будет таким: 6 Значение FIVE = 5
|
|||
|