JavaScript”;或“-PHP中的功能

JavaScript "or"-functionality in PHP

本文关键字:功能 -PHP JavaScript      更新时间:2023-09-26

我在PHP 中有以下代码

if($row["phone"])
  $phone = $row["phone"];
else
  $phone = $row["mobile"];

在JavaScript中,我可以简单地编写

phone = row.phone || row.mobile;

这更容易写,看起来也更好。如果我在PHP中尝试同样的操作,它只会返回true

$phone = $row["phone"] || $row["mobile"];
echo $phone;     // 1

PHP中是否有任何运算符为我提供了与JavaScript中相同的功能?我尝试了比特或|,但这只是有时有效,有时我会得到非常奇怪的结果。

看看这个答案。你可以这样使用elvis操作符:

$phone = $row['phone'] ?: $row['mobile'];

这将比更短

$phone = $row['phone'] ? $row['phone'] : $row['mobile'];

在PHP中,逻辑运算符总是返回布尔值,因此您必须像在问题中所做的那样完成工作。您也可以使用三元运算符进行编写:

$phone = $row['phone'] ? $row['phone'] : $row['mobile'];