gpt4 book ai didi

PHP is_null : Only boolean true and false, 甚至不是 null?

转载 作者:行者123 更新时间:2023-12-02 17:41:15 25 4
gpt4 key购买 nike

跟进此question and answer ,我决定仅接受 boolean 值 true 和 false,,甚至接受其他开发人员/用户输入的 null

$default = array(
"category_id" => null,
"category" => false,
"randomise" => false
);

$config = array(
"category_id" => 17,
"randomise" => false,
"category" => null
);

function process_array($default,$config)
{
# Set empty arrays for error & items.
$error = array();
$items = array();

# Loop the array.
foreach($default as $key => $value)
{
if (is_bool($default[$key]) && isset($config[$key]))
{
if ($config[$key] === null) $error[] = '"'. $key.'" cannot be null.';

# Make sure that the value of the key is a boolean.
if (!is_bool($config[$key]))
{
$error[] = '"'. $key.'" can be boolean only.';
}

}

if(isset($config[$key]) && !is_array($value))
{
$items[$key] = $config[$key];
}
elseif(isset($config[$key]) && is_array($value))
{
$items[$key] = array_merge($default[$key], $config[$key]);
}
else
{
$items[$key] = $value;
}
}

# Give a key to the error array.
$error = array("error" => $error);

# Merge the processed array with error array.
# Return the result.
return array_merge($items,$error);
}

print_r(process_array($default,$config));

但我得到的结果是,

Array
(
[category_id] => 17
[category] =>
[randomise] =>
[error] => Array
(
)

)

我追求的结果,

Array
(
[category_id] => 17
[category] =>
[randomise] =>
[error] => Array
(
[0] => "category" cannot be null.
)

)

所以我认为下面的这一行应该有效,但我不明白为什么它不起作用。我尝试使用 is_null 但仍然无法正常工作。知道我做错了什么以及如何解决这个问题吗?

if ($config[$key] === null) $error[] = '"'. $key.'" cannot be null.';

最佳答案

我相信 null 值不会通过 if (is_bool($default[$key]) && isset($config) 中的 isset() 测试[$key])),因此它会跳过整个 block 。

我认为您需要进行一些重构才能解决这个问题。也许可以从 if 中取出 isset 并将其移至 null 测试?

if (!isset($config[$key]) || is_null($config[$key])) $error[] = '"'.$key.'"不能为 null。';

关于PHP is_null : Only boolean true and false, 甚至不是 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12477095/

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