PHP 速记三元运算符 “?:” 解析错误意外 “:”
2022-08-30 13:36:46
我刚刚将一些旧的PHP文件上传到新服务器,并且在速记三元操作上遇到解析错误(意外的':')。例如:
$y = $x ?: "Some default";
php版本是5.2.16代码中到处都是这些速记?:,所以在更改它们之前,我想看看是否有人对此有所了解,因为我已经有一段时间没有使用PHP了。
我刚刚将一些旧的PHP文件上传到新服务器,并且在速记三元操作上遇到解析错误(意外的':')。例如:
$y = $x ?: "Some default";
php版本是5.2.16代码中到处都是这些速记?:,所以在更改它们之前,我想看看是否有人对此有所了解,因为我已经有一段时间没有使用PHP了。
这仅在 PHP 5.3 之后可用
表达式 (expr1) ?(expr2): 如果 expr1 的计算结果为 TRUE,则 (expr3) 计算结果为 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
由于您使用的是 php 5.2.16,因此您的三元需要 2 个选项,例如
$y = $x? "???" : "Some default";
变量 = 条件 ?真值 : 假值 ;