roles_to_categories
是什么意思?
朋友,上面做了什么?
答案 0 :(得分:1)
最好写成(为清晰起见,括号):
$mark_state_id = ($r['mark_state_id'] == 2 ? 1 : 2);
表示"如果$r['mark_state_id']
等于2,则返回1,否则返回2.然后$mark_state_id
将获取上面返回的值。这相当于:
$mark_state_id;
if($r['mark_state_id'] == 2){
$mark_state_id = 1;
} else {
$mark_state_id = 2;
}
它使用ternary operator作为if / else。
的简写答案 1 :(得分:0)
这是一个三元运算符,说的是:如果$r['mark_state_id']
= 2,则$mark_state_id
= 1,否则$mark_state_id
= 2。
这基本上意味着这个if / else语句:
if($r['mark_state_id'] == 2){
$mark_state_id = 1;
} else {
$mark_state_id = 2;
}
答案 2 :(得分:0)
表达式(expr1)? (expr2):( expr3)如果expr1的计算结果为TRUE,则计算结果为expr2;如果expr1计算结果为FALSE,则计算结果为expr3。
它会检查$r['mark_state_id'] == 2
。如果是true
,则会分配1
其他2
。
$mark_state_id = $r['mark_state_id'] == 2 ? 1 : 2;
类似于 -
if($r['mark_state_id'] == 2) {
$mark_state_id = 1;
} else {
$mark_state_id = 2;
}
三元运算符是一个表达式,它不会计算变量,而是表达式的结果。知道是否要通过引用返回变量很重要。声明返回$ var == 42? $ a:$ b;因此,在返回引用函数中将不起作用,并在以后的PHP版本中发出警告。