5.6中的isset致命错误但7中罚款

时间:2017-04-20 12:23:16

标签: php

这段代码在5.6中导致PHP致命错误,但在7.0及更高版本中正常工作。 Scenario: I should be welcomed when I sign in Given I am registered When I sign in Then I should be welcomed 没有记录的更改,我发现它可以将数组作为常量使用。

isset

有没有人知道任何文件说明这是一个真正的变化?将数组作为常量使用<?php class Test { const A = [1]; } echo isset(Test::A[0]); 是否安全?

PHP 5.6.30错误:

  

致命错误:不能对表达式的结果使用isset()(您可以使用&#34; null!== expression&#34;而不是)

1 个答案:

答案 0 :(得分:2)

isset()是一种语言结构,而不是一种功能,所以也许这段(来自http://php.net/manual/en/migration70.incompatible.php)适用:

  

PHP 7现在在解析源文件时使用抽象语法树。这个   允许对以前的语言进行许多改进   不可能由于早期版本中使用的解析器的限制   PHP,但已导致删除一些特殊情况   一致性原因,导致向后兼容性   符。