我刚刚将一些旧的 PHP 文件上传到新服务器,并且在速记三元操作中遇到解析错误(意外的“:”)。例如:
$y = $x ?: "Some default";
php 版本是 5.2.16 代码中充斥着这些简写 ?:,所以在更改它们之前,我想看看是否有人知道这件事,因为我已经有一段时间没有使用 PHP 了。
此功能仅自 PHP 5.3 起可用
表达式 (expr1) ? (expr2) : (expr3) 如果 expr1 计算结果为 TRUE,则计算为 expr2;如果 expr1 计算结果为 FALSE,则计算为 expr3。
从 PHP 5.3 开始,可以省略三元运算符的中间部分。表达式 expr1 ?: expr3 如果 expr1 计算结果为 TRUE,则返回 expr1,否则返回 expr3。1
请参阅此示例了解更多上下文。
或者更有用但请在评论中注明: http://www.php.net/manual/en/control-structs.if.php#102060
由于您使用的是 php 5.2.16,因此您的三元需要 2 个选项,例如
$y = $x ? $x : "Some default";
变量=条件?真值:假值;