php7使用Coalescing运算符替代isset

楚天乐 46 0 条

简洁

使用coalescing运算(??)代替isset来减少代码量,省去不必要的代码。在获得某个变量的时候,可以直接给出默认值,而不是先判断是否存在

isset

https://www.php.net/manual/en/function.isset.php

用例

$page = 1;
if(isset($_GET["page"])){
    $page = $_GET["page"];
}

//或者

page = isset($_GET['page']) ? $_GET['page'] : 1

我们经常需要检测一个

coalescing运算(??)

https://www.php.net/manual/en/migration70.new-features.php

当我们需要使用isset三元运算符的时候,我们可以使用coalescing运算(??)这个语法糖来代替

比如

$page = isset($_GET['page']) ?? 1;

测试代码

$array = [0 => "aaa", 1 => null];
$v0 = $array[0] ?? "emtpy"; // 存在
$v1 = $array[1] ?? "emtpy"; // null
$v2 = $array[2] ?? "emtpy";     // 不存在

echo $v0 . "\n";
echo $v1 . "\n";
echo $v2 . "\n";
echo "==============\n";
var_dump(isset($array[0]));
var_dump(isset($array[1]));
var_dump(isset($array[2]));

输出

aaa
emtpy
emtpy
==============
bool(true)
bool(false)
bool(false)


发表我的评论
昵称 (必填)
邮箱 (必填)
网址