このコードがなぜ実行されるのか理解できません。 PHP defined()なぜ定数が定義されていてもfalseを返すのですか?
define('TEST', 123);
echo TEST;
echo "\n";
var_dump(defined(TEST));
印刷:
123
bool(false)
このコードがなぜ実行されるのか理解できません。 PHP defined()なぜ定数が定義されていてもfalseを返すのですか?
define('TEST', 123);
echo TEST;
echo "\n";
var_dump(defined(TEST));
印刷:
123
bool(false)
あなたはTEST
名前付き定数に言及していないので - あなたが含まれているものは何でもTEST
に言及しています。
var_dump(defined(123));
は、(引用符で囲む)の代わりに定数名を参照してください:
- これはあなたが(ない123
定数が存在しないコードは右である)やっていることで、アウトラップ
var_dump(defined('TEST'));
おそらく、defined()がパラメータとして文字列を必要とするためです。
var_dump(defined('TEST'));
使用が間違っ
define('TEST', 123);
echo TEST;
echo "\n";
var_dump(defined(TEST));//provide The constant name you are providing 123 so it not defined
//correct call would be
var_dump(defined('TEST'));
@downvoters、心を説明し、それを呼び出す必要がありますか?これは良い質問です。何が尋ねられているかはっきりしています。彼は何か自分自身で試してみて、自分のコードを共有しています。彼はまた、彼の期待と実際の結果を述べている。 – Kevin