什么样的问题会在PHP中生成E_COMPILE_WARNING?

前端之家收集整理的这篇文章主要介绍了什么样的问题会在PHP中生成E_COMPILE_WARNING?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我花了一些时间搜索Google以及SO,并且无法找到这个简单问题的答案: @H_502_1@什么样的问题会在PHP生成E_COMPILE_WARNING?

@H_502_1@PHP manual entry on the subject docs说E_COMPILE_WARNING:

@H_502_1@Compile-time warnings (non-fatal errors). This is like an E_WARNING,
except it is generated by the Zend Scripting Engine.

@H_502_1@但我不确定这会构成什么.常规E_WARNING与Zend脚本引擎引发的警告之间有什么区别?有人可以解释并提供代码片段(如果适用)吗?

基本上,E_WARNING和E_COMPILE_WARNING之间的区别在于脚本仍在编译时生成E_COMPILE_WARNING. @H_502_1@E_COMPILE_WARNING类似于E_COMPILE_ERROR,因为它是在编译期间生成的,但E_COMPILE_WARNING不会像E_COMPILE_ERROR那样阻止脚本执行.将它与E_ERROR和E_WARNING之间的关系进行比较,前者停止执行,后者允许执行继续.

@H_502_1@例如,以下代码生成E_COMPILE_WARNING:

<?PHP
    echo "\n";
    echo "Hello World";
    echo "\n\n";
    var_dump(error_get_last());
    declare(foo='bar');
?>
@H_502_1@输出

Warning: Unsupported declare 'foo' in e_compile_warning.PHP on line 6

Hello World

array(4) {
  ["type"]=>
  int(128)
  ["message"]=>
  string(25) "Unsupported declare 'foo'"
  ["file"]=>
  string(124) "e_compile_warning.PHP"
  ["line"]=>
  int(6)
}
@H_502_1@注意警告如何在另一个输出之前显示(即使“Hello World”在源代码中排在第一位),第5行的var_dump语句引用第6行发生的错误.PHP编译脚本,不喜欢声明(foo =’bar’);,但是仍然返回并执行脚本(而不是像$this = 2;这样会立即停止执行(和编译)的E_COMPILE_ERROR).

@H_502_1@希望这可以帮助!

原文链接:https://www.f2er.com/php/130494.html

猜你在找的PHP相关文章