代码就是这个:
$vendors[] = array(
"id" => $row['vendorID'],
"name" => $row['name'] == "" ? "-" : $row['name'],
"tel1" => $row['phone1'] == "" ? "-" : $row['phone1'],
"tel2" => $row['phone2'] == "" ? "-" : $row['phone2'],
"mail" => $row['email'] == "" ? "-" : $row['email'],
"web" => $row['web'] == "" ? "-" : $row['web']);
有人可以解释一下它究竟是什么吗?看起来像Alternative syntax,但我没有设法找到信息。
谢谢你
答案 0 :(得分:24)
如果
(expr1) ? (expr2) : (expr3)
评估为expr2
,则expr1
表达式评估为TRUE
;如果expr3
评估为expr1
,则表达式FALSE
。
答案 1 :(得分:4)
这意味着:如果值为“”(空),则设置为“ - ”(连字符),否则设置为它是什么。
只需读取一个?b:c为«如果是b,那么c»。
答案 2 :(得分:3)
是的,这是其他人所说的,但在代码可读性方面并没有真正推荐。请小心使用,不要在没有托架的情况下使用它。
$myvar = ($condition == TRUE) ? $valueIfTrue : $valueIfFalse;
而不是
if ($condition)
{
$myvar = $valueIfTrue;
}
else
{
$myvar = $valueIfFalse;
}
答案 3 :(得分:1)
PHP坚持要求调用“三元运算符” - 请参阅http://www.phpbuilder.com/manual/language.operators.comparison.php了解语法和示例。
答案 4 :(得分:0)
您也可以像"name" => $row['name'] == "" ?? "-"
即a == b ?? c如果a = b为真,则使用else使用c