このコードが実行される理由が理解できません。
define('TEST', 123);
echo TEST;
echo "\n";
var_dump( defined(TEST) );
印刷:
123
bool(false)
このコードが実行される理由が理解できません。
define('TEST', 123);
echo TEST;
echo "\n";
var_dump( defined(TEST) );
印刷:
123
bool(false)
名前付きの定数を参照していないため、含まTEST
れるものを参照してTEST
います。
まとめて、これはあなたがしていることです(コードは正しいです-123
定数はありません):
define('TEST', 123);
var_dump( defined(TEST) ); // turns into the below statement
var_dump( defined(123) ); // false - no 123 constant
代わりに定数名を参照してください (引用符で囲みます)。
define('TEST', 123);
var_dump( defined('TEST') ); // true, the TEST constant is indeed defined
// ^ ^ Quotation marks are important!
使い方が間違っている
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') );
おそらく、 defined() はパラメーターとして文字列を必要とするためです。
var_dump( defined('TEST') );