什么是 PHP 空合并?它有什么用途以及如何使用?我们将在本课中学习这些。

PHP Null Coalescing 运算符是在 PHP 7 中引入的。PHP Null Coalescing 运算符允许有条件地分配数据。如果第一个操作数存在且不为空,则返回第一个操作数,否则返回第二个操作数。

PHP 空合并示例

// Örnek 1: 
echo $name = $_POST['name'] ?? 'nobody';
// Çıktı: nobody
// Örnek 1.1
if (isset($_POST['name'])) {
    echo $name = $_POST['name'];
} else {
    echo $name = 'nobody';
}
// Çıktı: nobody
// Örnek 1.2
echo $name = isset($_POST['name']) ? $_POST['name'] : 'nobody';
// Çıktı: nobody

在示例1中,由于没有名为name的发布数据,因此将值nobody分配给$name变量并打印它。示例 1 是示例 1.1 和 1.2 的简化版本,其中使用了 PHP Null Coalescing 运算符。两者返回相同的结果并具有相同的含义。

// Örnek 2
$first_name = 'Onur';
$last_name = null;
echo ($first_name ?? 'Ad Yok') . ' ' . ($last_name ?? 'Soyad Yok');?> 
// Çıktı: Onur Soyad Yok

在示例 2 中,由于 $first_name 变量有数据,因此它返回第一个条件中的变量。但是,由于 $last_name 变量为 null,因此它返回第二个条件中的第二个操作数并打印句子“No Surname”。

PHP 空合并运算符链接

我们可以通过链接来使用 PHP Null Coalescing 运算符。

// Örnek 3
echo $name = $_GET['name'] ?? $_POST['name'] ?? 'nobody';
// Çıktı: nobody
// Örnek 3.1
if (isset($_GET['name'])) {
    echo $name = $_GET['name'];
} elseif (isset($_POST['name'])) {
    echo $name = $_POST['name'];
} else {
    echo $name = 'nobody';
}
// Çıktı: nobody

在示例 3 中,如果定义了 $_GET['name'],PHP 将数据 $_GET['name'] 分配给 $name 变量并打印它。如果未定义,请检查 $_POST'name'] 变量,如果定义了 $_POST'name'] ,则丢弃并打印,如果未定义,则丢弃并打印 'nobody' 数据。例 3.1 返回与例 3 相同的结果,并且具有相同的含义。示例 3.1 是示例 3 的更长版本,使用 if-elseif-else 条件语句进行编码。示例 3 是使用 PHP Null Coalescing 编码的简短版本。