定義で配列を使用すると、次のエラーが発生するため、代替手段を探していdefine('name', array)
ます。
定数は、... のスカラー値にのみ評価できます。
私が言及している配列には、文字列のみが含まれています。
php.netから...
定数の値。スカラー値と null 値のみが許可されます。スカラー値は、整数、浮動小数点数、文字列、またはブール値です。リソース定数を定義することは可能ですが、推奨されておらず、予期しない動作を引き起こす可能性があります。
しかし、あなたはいくつかのトリックで行うことができます:
define('names', serialize(array('John', 'James' ...)));
& 使用する場合は、unserialize() 定数値 (名前) を使用する必要があります。これはあまり役に立たないので、代わりに複数の定数を定義してください:
define('NAME1', 'John');
define('NAME2', 'James');
..
そして、次のように印刷します。
echo constant('NAME'.$digit);
function を使用json_encode
して、配列を json 文字列としてエンコードし、それを定数として定義して、定数にアクセスできる任意の場所で使用できます。
例 :
// Define the array
$MyArray = array(
"mykey" => "myvalue",
"mykey1" => "myvalue1"
);
define('MYARRAY', json_encode($MyArray));
// Decode the constant and use.
$UseMyArray = json_decode(MYARRAY);