📅  最后修改于: 2023-12-03 14:45:10.293000             🧑  作者: Mango
空合并运算符 ?? 是在 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 中的一个非常有用的特性,可以简化代码编写,避免一些条件判断的问题。尽可能在代码中使用它,以减少不必要的代码和提高代码的可读性。