7

定義で配列を使用すると、次のエラーが発生するため、代替手段を探していdefine('name', array)ます。

定数は、... のスカラー値にのみ評価できます。

私が言及している配列には、文字列のみが含まれています。

4

5 に答える 5

20

php.netから...

定数の値。スカラー値と null 値のみが許可されます。スカラー値は、整数、浮動小数点数、文字列、またはブール値です。リソース定数を定義することは可能ですが、推奨されておらず、予期しない動作を引き起こす可能性があります。

しかし、あなたはいくつかのトリックで行うことができます:

define('names', serialize(array('John', 'James' ...)));

& 使用する場合は、unserialize() 定数値 (名前) を使用する必要があります。これはあまり役に立たないので、代わりに複数の定数を定義してください:

define('NAME1', 'John');
define('NAME2', 'James');
..

そして、次のように印刷します。

echo constant('NAME'.$digit);
于 2013-10-18T07:52:25.453 に答える
0

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);
于 2020-12-18T17:15:39.253 に答える