我遇到过这种语法:var ==""?" - ":var.有人可以解释一下吗?

0pl*_*us1 3 php syntax

代码是这样的:

$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']);
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下它究竟是什么吗?看起来像一个替代语法,但我没有设法找到信息.

谢谢

Ant*_*lev 24

这是一个三元运算符:

表达式(expr1) ? (expr2) : (expr3)求值为expr2if ,如果expr1求值为TRUE,expr3expr1求值为FALSE.

  • 可能值得一提的是,三元运算符并非PHP独有 - 请参阅http://en.wikipedia.org/wiki/Ternary_operation (2认同)