我有自定义三元运算,可以从数字中获得用户性别:
代码:
$value = 0;
$gender = $value === 0 ? 'Male' : $value === 1 ? 'Female' : 'Other';
echo $gender;
我认为该代码必须返回Male
,但必须返回Female
。 Here是示例。
或者我的三元操作不正确,无法获得Male
结果?
我的三元操作与此代码不相等吗?
代码:
if($value === 0) $gender = 'Male';
elseif($value === 1) $gender = 'Female';
else $gender = 'Other';
答案 0 :(得分:4)
这是一个优先问题,您的代码被评估为:
$gender = ($value === 0 ? 'Male' : $value === 1) ? 'Female' : 'Other';
但是您想要的是:
$gender = $value === 0 ? 'Male' : ($value === 1 ? 'Female' : 'Other');
这是因为PHP从左到右评估三元运算符。参见manual。
答案 1 :(得分:0)