gpt4 book ai didi

php - 在 PHP 中 !empty($variable) 和 count($variable) 的 bool 结果是否总是相等?

转载 作者:行者123 更新时间:2023-12-04 11:00:16 25 4
gpt4 key购买 nike

我需要替换出现的
在 IF 语句中使用 !empty($variable) 计数 ($variable)
所以而不是

if(count($variable)){

}

我想用
if(!empty($variable)){

}

在确保结果始终相同的同时始终更换它是否安全?

最佳答案

Test it :

foreach (['', null, 0, 0.0, '0', false, [], new stdClass, 'foo', 1, true, ['bar' => 'baz']] as $val) {
var_dump($val, count($val), !empty($val));
echo '-------------', PHP_EOL;
}

对于这些情况,情况有所不同:
string(0) ""
int(1)
bool(false)
-------------
int(0)
int(1)
bool(false)
-------------
float(0)
int(1)
bool(false)
-------------
string(1) "0"
int(1)
bool(false)
-------------
bool(false)
int(1)
bool(false)

此外, count将触发 undefined variable 的错误。在 PHP 7.2+ 上, count对于任何非 Countable 也会触发错误值(基本上是除 arrayimplement Countable 之外的所有类)。

所以,如果你能保证你的变量永远是一个数组,那就没有区别了。如果您的变量可以是数组以外的任何内容,包括未定义,那么您将看到不同结果和触发的错误之间的任何地方。

如果您希望变量存在并且是一个数组/ Countable , 你应该更喜欢 count或只是 if ($variable) (因为空数组也是假的)如果您的值违反了您的期望,则获取正确的错误消息。

关于php - 在 PHP 中 !empty($variable) 和 count($variable) 的 bool 结果是否总是相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58853594/

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