PHPでは、条件付き判断にブールオペレーターがよく使用されます。ただし、ブール値が誤って書かれている場合、次の警告がトリガーされる場合があります。
PHP Notice: Use of undefined constant true/false - assumed 'true/false'
このエラーは、未定義の定数がブール判断で使用されていることを示しています。次に、理由を分析し、いくつかの一般的なソリューションを紹介します。
この問題の本質は、ブール値を文字列または未定義の定数として使用することです。たとえば、次のコードは構文的には正しいと思われますが、上記の警告をトリガーします。
$flag = true;
if($flag == true) { ... }
PHPが言語キーワードとしてtrueを認識しない場合、それは定数として解釈されます。定数が定義されていない場合、エラーが発生します。
最も直接的な解決策は、PHPの組み込みのブール値を使用することです。
$flag = true;
if($flag) { ... }
$ Flag自体はブール型であるため、a ==真の比較を行う必要はありません。
定数を使用してビジネスでブール値を表現する必要がある場合は、最初に定義してください。
define('MY_TRUE', true);
$flag = MY_TRUE;
if($flag == true) { ... }
これにより、PHPがmy_trueを未定義の識別子として識別することを防ぎます。
もう1つの推奨アプローチは、合同演算子を使用することです。これは、値が等しいと判断するだけでなく、タイプを一貫性にする必要があります。
$flag = true;
if($flag === true) { ... }
この方法は、タイプの不一致によって引き起こされる暗黙のエラーを防ぐことができ、より厳格です。
PHPで論理的な判断を下す場合、ブール値を正しく使用することが重要です。次の点に留意してください:
これらの方法により、「未定義の定義された一定の真/偽」クラスの一般的なPHPエラーを効果的に回避できます。