迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > PHP >

PHP 中的空合并与 elvis 运算符

作者:迹忆客 最近更新:2023/03/27 浏览次数:

本文将通过演示区分 PHP 中的 null 合并运算符和 Elvis 运算符。


PHP 中的 elvis 运算符

首先,让我们了解一下 Elvis 运算符。PHP Elvis 运算符是三元运算符的简写运算符。

我们也可以说它是三元运算符的修改形式。要了解 PHP Elvis 运算符,我们必须了解三元运算符及其工作原理。

三元运算符是一种条件运算符,用于对具有简单语句的条件执行简单比较或检查。它是 if-else 语句的较短版本。

它减少了执行条件操作的代码长度。操作的顺序是从左到右。

语法:

condition? statement1 : statement2;

在三元运算符中,首先评估条件。如果条件为真,则执行 statement1,如果条件为假,则执行 statement2

它被称为三元运算符,因为它需要三个操作数,即一个条件,一个结果语句为真,一个语句为假。

示例代码:

<?php
$marks = 80;
$result = $marks >= 40 ? 'Pass': 'Fail';
echo $result;
?>

上面的示例将显示 Pass,因为条件 $marks >= 40 为真。

输出:

Pass

现在让我们看一下 Elvis 运算符。它与三元运算符略有不同;它只是省略了第二个操作数(在 conditionstatement2 之间)并使其更短。

语法:

condition?:statement;

在这里,如果条件评估为真,则返回条件。否则,它将返回语句

上述 Elvis 语法的三元表示如下所示。

conditon ? condition : statement;

注意:像 0falseNULL""[]"0" 等值在 PHP 中被认为是错误值。

让我们看一些 elvis 运算符的例子。

示例代码:

<?php
$name = "John Doe";
$yourName = $name ?: 'No name';
echo $yourName."<br>";

$marks = "";
$yourMarks = $marks ?: 'No marks';
echo $yourMarks."<br>";

$address = null;
$yourAddress = $address ?: 'No Address';
echo $yourAddress."<br>";

$age = false;
$yourAge = $age ?: 'No age';
echo $yourAge."<br>";
?>

输出:

John Doe
No marks
No Address
No age

由于 $name 变量返回 true,所以评估变量的值。在其余情况下,变量 $marks$address$age 返回 false,因此计算右侧的操作数。

因此,我们可以得出结论,elvis 算子的输出取决于条件的状态。


PHP 中的空合并运算符

空合并运算符检查给定变量是否为空,并从这对值中返回非空值。空合并运算符的输出取决于变量是否为空。

让我们看看下面的语法来理解它。

statment1 ?? statement2;

在这里,如果 statment1 的计算结果为空,statment2 将被返回。如果 statment1 是一个非空值,它将被返回。

在 null 合并运算符中,statement 的值是 false0 还是 '' 无关紧要。即使 statement 有虚假值,它的值也会被返回。

这是 Elvis 运算符和 null 合并运算符之间的主要区别。空值合并运算符的一些示例是:

示例代码:

<?php
$name = "John Doe";
$yourName = $name ?? 'No name';
echo $yourName."<br>";

$marks = "";
$yourMarks = $marks ?? 'No marks';
echo $yourMarks."<br>";

$age = false;
$yourAge = $age ?? 'No age';
echo $yourAge."<br>";

$address = null;
$yourAddress = $address ?? 'No Address';
echo $yourAddress."<br>";
?>

输出:

John Doe


No Address

在这里,变量 $name 为真,然后在输出部分对其进行评估和打印。接下来,变量 $marks 是一个空字符串;空字符串是假值。

第二个操作数不被评估,因为它不是空值。输出部分中有一个空白,因为评估的是空字符串。

$age 变量的情况相同,因为它保存一个假值但不为空值。最后,$address 变量有一个空值;因此,计算第二个操作数 No Address

从上面的例子和解释中,我们可以得出结论,elvis 算子和空值合并算子的显着区别在于 elvis 算子检查值是否为真。尽管如此,null 合并运算符仍会检查值是否不为 null。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 PHP 中获取时间差的分钟数

发布时间:2023/03/29 浏览次数:183 分类:PHP

本文介绍了如何在 PHP 中获取时间差的分钟数,包括 date_diff()函数和数学公式。它包括 date_diff()函数和数学公式。

PHP 中的重定向

发布时间:2023/03/29 浏览次数:136 分类:PHP

本教程演示了如何将用户从页面重定向到 PHP 中的其他页面

PHP 分页

发布时间:2023/03/29 浏览次数:66 分类:PHP

本教程介绍如何在 PHP 中对数据库行进行分页

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便