【发布时间】:2021-10-04 18:36:26
【问题描述】:
简单的问题,简单的代码。这有效:
$x = &$_SESSION['foo'];
这不是:
$x = (isset($_SESSION['foo']))?&$_SESSION['foo']:false;
它抛出PHP Parse error: syntax error, unexpected '&'。使用条件运算符时是否不能通过引用传递,为什么不呢?如果? 和& 之间有空格,也会发生这种情况。
【问题讨论】:
-
哪个 PHP 版本? AFAIU,您可以使用 PHP 5.3:$x = &($_SESSION['foo']) ?: false;
-
对不起,我不小心把它剪掉了; 5.2.8,可悲的是。
-
@Milan 如果 $_SESSION['foo'] 元素不存在,则会触发 E_NOTICE
标签: php ternary-operator