我在理解为什么以下不会导致5.3.3中的编译器错误(在我的同事5.2.5上正确出错)时遇到一些麻烦:
原文链接:https://www.f2er.com/php/137862.html<?PHP echo "starting\n"; switch(1) { case 2: echo "two\n"; break; defalut: // note the misspelling echo "deflaut\n"; } echo "ending\n";
它不是给我一个编译器错误(甚至是一个警告),而是给出了这个:
starting ending
但是,如果我在if语句中使用它,它会给我我期望的内容:
<?PHP if (1 == deflaut) echo "deflaut2\n";
得到:
PHP Notice: Use of undefined constant deflaut - assumed 'deflaut' in ...
为什么是这样?我可以禁用一个设置,告诉它对这类事情要严格吗?