以下は私のサイトをかなりひどく壊します:
define('FOO', get_foo());
ただし、以下は正常に機能します。
define('FOO', 'BAR');
関数を define で使用することはできません。これは良くありません。定義は、定数を作成するために使用されます。定数は変更してはならず、常に同じ値を保持する必要があります。get_foo() などの関数は、さまざまな値を返すことができます。PHPは、定数に変更可能な値を入れたいと考えています。この関数の結果を変数に入れてみてください:
$foo = get_foo();
define()は、関数の戻り値ではなく、定数の値を想定しているため:
定数の値。スカラー値と null 値のみが許可されます。スカラー値は、整数、浮動小数点数、文字列、またはブール値です。リソース定数を定義することは可能ですが、推奨されておらず、予期しない動作を引き起こす可能性があります。