1

PHP Webページに次のコードがあります。

  if (bInserted) echo "abc";

変数名の前にドル記号を追加するのを忘れているため、PHP で構文エラーが発生することが予想されます。ただし、ページはエラーを生成しません。代わりに、「abc」文字列もエコーします。私はこれを本当に理解することができません。

4

1 に答える 1

5

YourbInsertedは a として解釈され、constantは定義されていないため (推定)、 string として扱われ、"bInserted"評価されるとtrueyour"abc"が出力されます。

とにかく、このような定数から文字列への暗黙的な変換は注意を喚起する必要があります。マニュアルを参照してください。

未定義の定数を使用すると、PHP は定数自体の名前を意味していると見なします。これは、定数を文字列として呼び出した場合と同じです (CONSTANT と "CONSTANT")。この場合、レベル E_NOTICE のエラーが発行されます。

本当にメッセージが表示されず、画面にもログにも表示されない場合は、正しいエラー レポートレベルが設定されていることを確認してください。たとえば、以下を試してください。

ini_set('display_errors', 1);
error_reporting(E_ALL);

ちなみに、E_ALLこの場合、 は定義された定数です!

于 2013-10-23T06:33:59.047 に答える