我在 php 网页中有以下代码:
if (bInserted) echo "abc";
我希望 PHP 给我一个语法错误,因为我忘记在变量名之前添加美元符号。但是,该页面不会产生任何错误。相反,它甚至会回显“abc”字符串。我真的无法理解这一点。
我在 php 网页中有以下代码:
if (bInserted) echo "abc";
我希望 PHP 给我一个语法错误,因为我忘记在变量名之前添加美元符号。但是,该页面不会产生任何错误。相反,它甚至会回显“abc”字符串。我真的无法理解这一点。
YourbInserted
被解释为 a constant
,并且由于未定义(我假设),因此它被视为 string "bInserted"
,其计算结果为true
your"abc"
被打印。
无论如何,这种从常量到字符串的隐式转换应该引起注意,请参阅手册。
如果您使用未定义的常量,PHP 假定您指的是常量本身的名称,就像您将其称为字符串一样(CONSTANT 与“CONSTANT”)。发生这种情况时将发出 E_NOTICE 级别的错误。
如果您真的没有看到任何消息,也没有在屏幕上或日志中看到,请确保您设置了正确的错误报告级别,例如,您可以尝试
ini_set('display_errors', 1);
error_reporting(E_ALL);
而且,顺便说一下,E_ALL
在这种情况下是一个定义的常量!