全方位站长技能、SEO优化学习平台
当前位置:网站首页 > PHP笔记 > 正文

php菜鸟教程:三元运算符(?:)和null合并运算符(??)介绍

作者:文煞发布时间:2024-04-09分类:PHP笔记浏览:180


温馨提示:手机扫码可阅读当前文章!
文章简介:跟着文煞一起学习PHP编程,从零基础开始。以笔记为引,以实战为主。都是自学PHP,没有系统的高深教程,只有零碎的实用笔记。今天的笔记内容:介绍PHP中两个比较实用的操作符,分别是三元运算符(?:)和null合并运算符(??)。一、三元运算符...

跟着文煞一起学习PHP编程,从零基础开始。以笔记为引,以实战为主。都是自学PHP,没有系统的高深教程,只有零碎的实用笔记。今天的笔记内容:介绍PHP中两个比较实用的操作符,分别是三元运算符(?:)和null合并运算符(??)。


一、三元运算符(?:)


我对三元运算符(?:)的理解:它是if/else语句的简写形式。在使用时,三元运算符的语法为expr1 ?: expr3。它的作用是判断expr1是否为true,如果是,则返回expr1,否则返回expr3。比如下面这个例子:


$action = (!empty($_POST['action'])) ?: 'default';


在上面的代码中,如果$_POST['action']不为空,则$action的值为$_POST['action'],否则值为'default'。这跟下面的if/else语句是一样的:


if (empty($_POST['action'])) {
$action = 'default';
}else {
$action = $_POST['action'];
}


这种写法在PHP编程中随处可见,如果在符合判断条件的情况下,需要执行的代码十分简单,就像这个例子中,只是对一个变量的简单定义,我们为什么不用三元运算符的方法的表示呢?毕竟一行代码就能完成这五行代码的工作,大大的精简了PHP脚本的代码,更易于维护代码。



我们再上一个案例代码:


// 处理数组的例子
$items = [1, 2, 3, 4];
$item = (isset($items[2])) ?: 'default';


在这个例子中,我们首先检查数组$items中是否存在索引为2的元素,如果存在,则将该元素赋值给变量$item,否则将'default'赋值给$item。如果我们使用if/else语句来完成该工作,代码则如下:


// 以下等同于以下的 if/else 语句
if (isset($items[2])) {
$item = $items[2];
}else {
$item = 'default';
}

php菜鸟教程:三元运算符(?:)和null合并运算符(??)介绍  第1张

二、null合并运算符(??)


接下来我们学习null合并运算符(??)。当我们需要判断某个表达式是否为null时,可以使用该操作符。其语法为(expr1) ?? (expr2),如果expr1为null,则返回expr2,否则返回expr1。需要注意的是,当expr1不存在时,null合并运算符不会产生警告,与isset()函数类似。特别适用于处理数组键的情况。下面是一个示例:


$action = $_POST['action'] ?? 'default';


在上面的示例中,如果$_POST['action']存在,则$action的值为$_POST['action'],否则值为'default'。如果写成if/else的语句,代码如下:


if (isset($_POST['action'])) {
$action = $_POST['action'];
}else {
$action = 'default';
}


由于使用PHP中的null合并运算符(??)时,它是一种用于处理空值或默认值的运算符。它可以用于在变量为null时返回一个指定的默认值。以下是一个使用null合并运算符的实用案例:


<?php
// 示例场景
$var1 = null;
$var2 = "default value";
// 使用null合并运算符获取$var1的值,如果为null则返回$var2的值
$result = $var1 ?? $var2;
// 输出结果
echo $result; // 输出 "default value"
// 示例场景2
$var3 = null;
$var4 = "default value";
$var5 = "expected value";
// 使用null合并运算符获取$var3的值,如果为null则返回$var4的值,否则返回$var5的值
$result = $var3 ?? $var4 ?? $var5;
// 输出结果
echo $result; // 输出 "expected value"
?>


在第一个示例中,我们首先将变量 `$var1` 设置为 `null`,然后使用 `??` 运算符获取 `$var2` 的值作为默认值。因此,输出结果是 "default value"。在第二个示例中,我们首先将变量 `$var3` 设置为 `null`。由于 `$var3` 为 `null`,所以使用 `??` 运算符将返回 `$var4` 的值。由于 `$var4` 的值是 "default value",所以最终结果输出为 "expected value"。如果 `$var4` 的值不为 `null`,则直接返回该值。


使用null合并运算符可以方便地处理空值和默认值的情况,尤其是在需要进行逻辑判断或传递默认值给函数时。它提供了简洁和易于理解的解决方案。


三、写在最后


通过使用三元运算符和null合并运算符,我们可以简洁地处理条件判断和null值情况,让代码更加清晰和简洁。希望本篇PHP自学笔记能够帮助您更好地理解和使用这两个操作符。


感谢你能阅读到这里,如果你也是一个PHP小白或者PHP自学者,文煞很热心的邀请你关注“文煞站长笔记网”这个微信公众号,让我们一起在PHP自学之路上互帮互助、讨论进步。

php菜鸟教程:三元运算符(?:)和null合并运算符(??)介绍  第2张

欢迎您,来自美国的朋友,您的IP:18.225.72.161,您的网络:Amazon数据中心


PHP笔记排行
随机推荐
猜你喜欢

服务热线

1888888888

要发发发发发发

站长微信公众号

站长微信公众号

分享:

支付宝

微信