Нет, это невозможно . Из руководства: Синтаксис констант
В константах могут содержаться только скалярные данные (логические, целые, с плавающей запятой и строковые). Можно определить константы как ресурс, но этого следует избегать, так как это может привести к неожиданным результатам.
Если вам нужно установить определенный набор констант, рассмотрите возможность создания класса и заполнения его константами классов . Слегка измененный пример из руководства:
class MyClass
{
const constant1 = 'constant value';
const constant2 = 'constant value';
const constant3 = 'constant value';
function showConstant1() {
echo self::constant1 . "\n";
}
}
echo MyClass::constant3;
Также проверьте ссылку, опубликованную GhostDog, это хороший обходной путь.
define('SOMEARRAY', serialize(array(1,2,3)));
$is_in_array = in_array($x, unserialize(SOMEARRAY));
Это ближе всего к константе массива.
не думаю, что вы можете. Но вы всегда можете попробовать поискать .
Вы не можете, но вы можете просто определить статический массив в классе, и он будет служить вам точно так же, просто вместо FOO вы напишите Foo::$bar.