gpt4 book ai didi

php - isset() 不允许作为 array_filter() 的回调

转载 作者:可可西里 更新时间:2023-11-01 13:52:24 25 4
gpt4 key购买 nike

如果你想从数组中删除空值,然后通过一个简单的 array_filter() 传递它们并使用内置的 isset() 函数似乎是一个不错的选择选项:

$dairyFree = true;
$toppings = [
'tomato',
'oregano',
'pepperoni',
($dairyFree) ? null : 'cheese',
];

$toppings = array_filter($toppings, 'isset');

非常简单,但是在 array_filter() 中使用 isset() 会引发以下警告:

警告:array_filter() 要求参数 2 是一个有效的回调函数,未找到函数“isset”或函数名称无效。

将相同的代码包装在一个闭包中很容易,但我的问题是——为什么 php 会在 isset() 函数而不是其他内部函数如 strlen() ?

最佳答案

isset 不完全是一个函数,它是一个类似echo 的结构。如果您只是想从数组中删除 null 值,那么没有 isset 参数就足够了。

<?php
$dairyFree = true;
$toppings = [
'tomato',
'oregano',
'pepperoni',
($dairyFree) ? null : 'cheese',
];
$toppings = array_filter($toppings);
print_r($toppings);
?>

这个输出:

Array
(
[0] => tomato
[1] => oregano
[2] => pepperoni
)

关于php - isset() 不允许作为 array_filter() 的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41168665/

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