0

以下は私のサイトをかなりひどく壊します:

define('FOO', get_foo());

ただし、以下は正常に機能します。

define('FOO', 'BAR');
4

2 に答える 2

2

関数を define で使用することはできません。これは良くありません。定義は、定数を作成するために使用されます。定数は変更してはならず、常に同じ値を保持する必要があります。get_foo() などの関数は、さまざまな値を返すことができます。PHPは、定数に変更可能な値を入れたいと考えています。この関数の結果を変数に入れてみてください:

$foo = get_foo();
于 2013-10-31T21:53:28.347 に答える
1

define()は、関数の戻り値ではなく、定数の値を想定しているため:

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

于 2013-10-31T21:42:56.087 に答える