首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >isset致命错误在5.6,但罚款在7

问isset致命错误在5.6,但罚款在7
EN

Stack Overflow用户
提问于 2017-04-20 12:23:16
回答 1查看 677关注 0票数 14

此代码片段在5.6中导致PHP致命错误,但在7.0及以上版本中运行良好。没有记录在案的对isset的更改,我可以找到它可以将数组作为常量使用。

代码语言:javascript
复制
<?php
class Test
{
    const A = [1];
}

echo isset(Test::A[0]);

有人知道有任何文件表明这是一个实际的变化吗?用数组作为常量使用isset安全吗?

PHP 5.6.30错误:

致命错误:不能对表达式的结果使用isset() (可以使用"null !==表达式“)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-28 04:44:32

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43519439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档