📜  php中的空合并运算符示例(1)

📅  最后修改于: 2023-12-03 15:18:34.007000             🧑  作者: Mango

PHP中的空合并运算符示例

在PHP 7.0之后,加入了一个新的运算符——空合并运算符(??),用于一个变量为null时使用默认值。

基本语法

$result = $variable ?? $default;

如果$variable不为null,则返回它的值;否则返回$default的值。

以下是一些示例:

$name = $_GET['name'] ?? 'Guest';
echo $name;

如果URL没有提供name参数,则打印出"Guest"。

$price = $_POST['price'] ?? $data['price'] ?? 0;
echo $price;

如果POST请求没有提供价格就使用默认的数据价格,如果数据中也没有设定价格,就打印出0。

工作原理

空合并运算符的执行顺序是从左到右,如果遇到一个不为null的操作数,就返回它的值。如果所有操作数都为null,则返回最后一个操作数。

以下是一些示例:

$a = null;
$b = 42;
$c = 0;

$d = $a ?? $b ?? $c;
echo $d; // 输出42

$e = $a ?? $c ?? $b;
echo $e; // 输出42

$f = $a ?? $b ?? $c ?? $d;
echo $f; // 输出42

在以上示例中,$a为null,所以$d的值为$b的值42。而在$e的例子中,$a$c都为null,所以$e的值是$b的值42。在$f的例子中,由于$a$c都为null,所以不断迭代,直到最后一个非null的操作数$d,所以$f的值也为42。

综合应用

使用空合并运算符与三元运算符相结合,可以充分发挥它们的优势。

例如:

$isAdmin = $_SESSION['isAdmin'] ?? false;
$msg = ($isAdmin) ? 'Welcome Admin!' : 'Welcome Guest!';
echo $msg;

如果$_SESSION['isAdmin']存在,且不为null,则$isAdmin的值为它的值;否则$isAdmin的值为false。这种结合运用可用于判断用户是否登录,是否有管理员权限等等。

总结

空合并运算符能够很好地简化代码。在一个变量清晰的默认值存在时,使用它可以减少大量的冗余语句,更好地控制代码的可读性。

如果您还没有使用过空合并运算符,试着在适当的场景下使用它,相信它会带来令人惊喜的便利。