加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

为什么我可以在php7中使用字符串文字作为类?

发布时间:2020-12-13 22:11:30 所属栏目:PHP教程 来源:网络整理
导读:请考虑以下代码: class foo { static $bar = 'baz';}var_dump('foo'::$bar); 它在PHP5中抛出一个错误(如预期的那样): Parse error : syntax error,unexpected ‘::’ (T_PAAMAYIM_NEKUDOTAYIM) in […][…] on line 4 但它在PHP7和输出中没有问题: string
请考虑以下代码:

class foo {
    static $bar = 'baz';
}
var_dump('foo'::$bar);

它在PHP5中抛出一个错误(如预期的那样):

Parse error: syntax error,unexpected ‘::’ (T_PAAMAYIM_NEKUDOTAYIM) in […][…] on line 4

但它在PHP7和输出中没有问题:

string(3) "baz"

这是故意还是错误?

解决方法

我认为这是因为他们改写了有关评估的内容.

喜欢以下在PHP5中不可能但在PHP 7中:

echo (new X)->toString();

同样的意思

echo ('X')::$bar

见Changes to the handling of indirect variables,properties,and methods

这主要是关于从左到右的评估,但它也影响评估.

更多信息可以在PHP RFC: Uniform Variable Syntax找到(状态:已实施) – 感谢Nikic:

This RFC proposes the introduction of an internally consistent and complete variable syntax. To achieve this goal the semantics of some rarely used variable-variable constructions need to be changed.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读