这段代码在5.6中导致PHP致命错误,但在7.0及更高版本中正常工作.没有记录的变化isset我可以发现它表明它可以作为常量使用数组.
<?php
class Test
{
const A = [1];
}
echo isset(Test::A[0]);
Run Code Online (Sandbox Code Playgroud)
有谁知道任何文件说明这是一个实际的变化?使用isset数组作为常量是否安全?
PHP 5.6.30错误:
致命错误:不能对表达式的结果使用isset()(可以使用"null!== expression"代替)
isset()是一个语言构造而不是一个函数,所以也许这一段(来自http://php.net/manual/en/migration70.inknown.php)适用:
PHP 7 现在在解析源文件时使用抽象语法树。这允许对语言进行许多改进,而这些改进以前由于早期版本的 PHP 中使用的解析器的限制而无法实现,但出于一致性原因删除了一些特殊情况,从而导致向后兼容性中断。
| 归档时间: |
|
| 查看次数: |
507 次 |
| 最近记录: |