📜  PHP 7-空合并运算符(1)

📅  最后修改于: 2023-12-03 14:45:10.293000             🧑  作者: Mango

PHP 7-空合并运算符

空合并运算符 ?? 是在 PHP7 引入的一个新特性,用于处理一个变量为空的情况。它可以简化一些条件判断和简化代码编写。本文将介绍该运算符的使用方法和示例。

语法
$var = $x ?? $y;

如果 $x 不为空,则 $var 为 $x 的值。如果 $x 为空,则 $var 为 $y 的值。

示例
<?php
// PHP 5.6
$username = isset($_GET['username']) ? $_GET['username'] : 'Guest';
echo $username; // 如果 $_GET['username'] 存在,则输出 $_GET['username'] 的值;否则输出 'Guest'

// PHP 7
$username = $_GET['username'] ?? 'Guest';
echo $username; // 如果 $_GET['username'] 存在,则输出 $_GET['username'] 的值;否则输出 'Guest'
?>

更多的示例:

<?php
// 判断数组元素是否存在
$array = ['foo' => 'bar'];
$foo = $array['foo'] ?? 'default';
$baz = $array['baz'] ?? 'default';
echo $foo."\n";  // Output: bar
echo $baz."\n";  // Output: default

// 判断变量是否为空
$x = null;
$y = 'foo';
$z = $x ?? $y;
echo $z."\n";  // Output: foo

// 判断函数返回值是否为空
function test(){
    return null;
}
$example = test() ?? 'default';
echo $example."\n"; // Output: default
?>
注意事项

空合并运算符只在 PHP7 或更高版本中可用,不能在早期的版本中使用。

在 PHP7.4 中,空合并运算符还支持按位运算符。例如:

<?php
$x = null;
$y = 1;
$result = $x ?? $y | 10;
echo $result."\n"; // Output: 11
?>
结论

空合并运算符是 PHP7 中的一个非常有用的特性,可以简化代码编写,避免一些条件判断的问题。尽可能在代码中使用它,以减少不必要的代码和提高代码的可读性。