php one_liner如果与javascript相比
发布时间:2020-12-13 21:59:09 所属栏目:PHP教程 来源:网络整理
导读:我最近在 javascript中编写了很多程序,我试图在 PHP中使用一些简写. 请考虑以下声明: $value = 1;return $value == 1 ? 'a' : $value == 2 ? 'b' : 'c'; 谁能解释一下为什么这会在jQuery中返回’a’而在php中返回’b’? 解决方法 在PHP中,三元运算符是 lef
我最近在
javascript中编写了很多程序,我试图在
PHP中使用一些简写.
请考虑以下声明: $value = 1; return $value == 1 ? 'a' : $value == 2 ? 'b' : 'c'; 谁能解释一下为什么这会在jQuery中返回’a’而在php中返回’b’? 解决方法
在PHP中,三元运算符是
left-associative(或者从
the manual开始,稍微不那么明确).
在Javascript中,三元运算符是right-associative.
因此,在PHP中,您的代码执行如下: ($value == 1 ? 'a' : $value == 2) ? 'b' : 'c'; 在Javascript中,它执行如下: value == 1 ? 'a' : (value == 2 ? 'b' : 'c'); 因此,要获得相同的结果,您需要告诉其中一个像另一个一样: echo $value == 1 ? 'a' : ($value == 2 ? 'b' : 'c'); 这是(其中一个?)嵌套三元运算符是个坏主意的原因. They’re not readable而且容易出现这类错误! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |