我刚刚将一些旧的 PHP 文件上传到新服务器,并且在速记三元操作上遇到解析错误(意外的 ':')。例如:
$y = $x ?: "Some default";
php 版本是 5.2.16 代码中到处都是这些简写?
我刚刚将一些旧的 PHP 文件上传到新服务器,并且在速记三元操作上遇到解析错误(意外的 ':')。例如:
$y = $x ?: "Some default";
php 版本是 5.2.16 代码中到处都是这些简写?
这仅在 PHP 5.3 之后可用
表达式(expr1) ? (expr2) : (expr3)如果 expr1 评估为 TRUE 则评估为 expr2 ,如果 expr1 评估为FALSE则为 expr3 。
从 PHP 5.3 开始,可以省略三元运算符的中间部分。表达式expr1 ?:如果 expr1 的计算结果为TRUE,则 expr3 返回 expr1,否则返回 expr3。1
有关更多上下文,请参阅此示例。
或更有用但在评论中注明: http ://www.php.net/manual/en/control-structures.if.php#102060
1 http://php.net/manual/en/language.operators.comparison.php
由于您使用的是 php 5.2.16,因此您的三元组需要 2 个选项,例如
$y = $x? "???" : "Some default";
变量=条件?真值:假值;