使用clone直接访问类成员访问权限

时间:2016-03-17 16:36:59

标签: php syntax php-5.4

从PHP 5.4开始,我们可以使用这种语法:

$oYesterday = (new \DateTime())->modify('-1 day');

因此我们不必创建临时变量。我想知道为什么它不能与clone一起使用,它会导致解析错误:

$oDayBefore = (clone $oYesterday)->modify('-1 day');

PHP Parse error:  syntax error, unexpected '->' (T_OBJECT_OPERATOR)

1 个答案:

答案 0 :(得分:2)

因为在PHP< 7,解析器中的所有内容基本上都是一个硬编码的特殊情况,并且没有人为(clone $var)编写案例而烦恼。 PHP 7终于体验了一个真实的AST,其中包括are possible