Мы можем определить константу, подобную
define("aconstant','avalue');
Нельзя ли определить массив таким образом, как показано ниже?
define("months",array("January", "February", ---); 
Мы можем определить константу, подобную
define("aconstant','avalue');
Нельзя ли определить массив таким образом, как показано ниже?
define("months",array("January", "February", ---); 
ОБНОВЛЕНИЕ: это возможно в PHP 7 (ссылка)
// Works as of PHP 7
define('ANIMALS', array(
    'dog',
    'cat',
    'bird'
));
echo ANIMALS[1]; // outputs "cat"
ОРИГИНАЛЬНЫЙ ОТВЕТ
От php.net...
Значение константы; только скалярные и нулевые значения допускается. Скалярными значениями являются значения integer, float, string или boolean. Можно определить константы ресурсов, однако это не рекомендуется и может вызвать непредсказуемое поведение.
 $months = array("January,"February",...) будет просто отлично.
вы можете использовать const для этой цели с PHP 5.6 (через nikic).
const months = ["January", "February"];
var_dump("January" === months[0]);
		Вы можете помещать массивы внутри констант с помощью hack:
define('MONTHS', serialize(array('January', 'February' ...)));
Но тогда вы должны unserialize(), что постоянное значение, когда это необходимо, и я думаю, что это не очень полезно.
В качестве альтернативы определите несколько констант:
define('MONTH_1', 'January');
define('MONTH_2', 'February');
...
И используйте constant() функцию для поиска значения:
echo constant('MONTH_'.$month);
		Нет, вы не можете. См. PHP: синтаксис - руководство
В константах могут содержаться только скалярные данные (boolean, integer, float и string). В качестве ресурса можно определить константы, но этого следует избегать, так как это может вызвать неожиданные результаты.
Вы можете использовать формат JSON для хранения массива в строке и затем назначить эту строку константе.
$months = array("January","February","March");
define('MONTHS', json_encode($months));
Если вы хотите его использовать:
$months = json_decode(MONTHS);
		Если у вас должна быть константа, как насчет использования разделительной строки и взрыва в массив?
define("MONTHS", "January;February;March");
$months = explode(";",MONTHS);
		С PHP 5.6 возможно объявлять постоянные массивы. Связанная документация использует пример const ARR = ['a', 'b'];. Вы также можете сделать const ARR = array('a', 'b');. Однако в 5.6 существует нечетная причуда: вы можете объявлять постоянные массивы с помощью const, но не define(). Этот был исправлен в PHP 7.0.