gpt4 book ai didi

PHP 函数返回 0 与 false

转载 作者:可可西里 更新时间:2023-11-01 00:43:23 26 4
gpt4 key购买 nike

我有一个 PHP 函数,它返回一个可以为零或更大的数字。例如:

public function returnVal($val1, $val2) {
if ($val2 > $val1) return $val2 - $val1;
else return false;
}

这被用作:

if ($diff = $this->returnVal($a, $b)) // do something
else // don't

然而,当差异为零时,我仍然希望它做一些事情,但它似乎将零检测为假而不是零。不过,我仍然需要知道它何时为假。

我尝试将其更改为:

if (($val2 - $val1) == 0) return 'zero';
if ($val2 > $val1) return $val2 - $val1;
else return false;

哪个有效,但似乎有点不优雅 - 肯定有更好的方法吗?

谢谢

最佳答案

通过 if 语句中的变量赋值快捷方式,PHP 使用松散类型比较和类型杂耍,例如 0null 和其他 false-y值为 false。您必须使用显式 ===!== 比较来确保比较是完全相同的类型(没有类型-杂耍):

$diff = $this->returnVal($a, $b);
if ($diff !== false) // do something
else // don't

参见 this reference对于使用简单的 ===!= 比较可能出现的所有比较条件。

@MrLlama 的替代方案:

if (($diff = $this->returnVal($a, $b)) !== false) // do something
else // don't

关于PHP 函数返回 0 与 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27362941/

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