【发布时间】:2018-11-09 04:18:01
【问题描述】:
这个sn-p的代码:
$a = $condition ? &$x : &$y;
产生错误:
PHP 解析错误:语法错误,php shell 代码中出现意外的 '&'
为什么 PHP 不允许在三元运算符中按条件选择引用?
【问题讨论】:
-
this 有帮助吗?
-
我猜这只是语法解析器的一个遗漏(故意或意外),但我对此没有任何进一步的信息。我确实看到它具有合理的预期结果(尽管代码本身确实很混乱,即使允许也不应该使用)
-
@FedericoklezCulloca 不多。没有合适的替代方案,像
$x=1;$y=3;list($a) = 1>0 ? [&$x] : [&$y];$a=33;var_dump($a,$x,$y);这样的解决方案会破坏预期的语义。也没有很好的解释......
标签: php reference ternary-operator