gpt4 book ai didi

php - 组合功能的模式? : and ? ?运营商

转载 作者:行者123 更新时间:2023-12-02 02:42:09 29 4
gpt4 key购买 nike

我有一个函数接受一个包含大量数据的数组,例如,其中一个数据是“name”:$data = ['name' => 'John'] ;

现在,如果我想使用默认值从中获取名称,我有两个经常使用的选项。

$name = $data['name'] ?? 'Default Name';
$name = $data['name'] ?: 'Default Name';

其中每一个都在不同的情况下应用默认值:当 $data 数组中未定义 'name' 键时,第一个会给我 'Default Name',第二个会当“名称”键在 $data 数组中时给我“默认名称”,但它是一个虚假值。另一方面,当未设置 key 时,它将出错。

但我想要一个运算符/函数,它在这两种情况下都为我提供默认值:当它为假时,如空字符串或数字 0 或其他任何内容,以及未设置 key 时。

最佳答案

empty 用三元就可以了:

<?php
$data =
[
['name'=>'Peter'],
['age'=>'23'],
['name' => ''],
['name' => '0']
];

foreach($data as $entry) {
echo
empty($entry['name'])
? 'Default'
: $entry['name']
, "\n";
}

输出:

Peter
Default
Default
Default

或者可读性较差的:

foreach ($data as $entry) {
$name = $entry['name'] ?? '' ?: 'Default';
echo $name, "\n";
}

与上面相同的输出。

关于php - 组合功能的模式? : and ? ?运营商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58823086/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com