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