在PHP中返回1,-1和0之间有什么区别?它们意味着什么?我想知道的是,'返回1'指的是真还是假?同样关于'return -1'和'return 0'。
答案 0 :(得分:2)
我怀疑你问的比较函数与usort()
一起使用,因为这是唯一一个返回1,-1或0的地方。
在这种情况下,1
表示第一个值大于第二个值,-1
表示第一个值小于第二个值,0
表示值相等。虽然usort()
实际上并不要求您返回这些特定值 - 但它关心的是值是正数,负数还是零。这允许您编写比较函数,如:
function compare_f($a, $b) {
return f($a) - f($b);
}
如果您询问的是true
/ false
种情况,请参阅http://php.net/manual/en/language.types.boolean.php。它说:
转换为布尔值时,以下值被视为FALSE:
- 布尔值FALSE本身
- 整数0(零)
- 浮点数0.0(零)
- 空字符串,字符串“0”
- 包含零元素的数组
- 一个零成员变量的对象(仅限PHP 4)
- 特殊类型NULL(包括未设置的变量)
- 从空标签创建的SimpleXML对象
其他每个值都被视为TRUE(包括任何资源)。
答案 1 :(得分:0)
这不是关于PHP的。它是关于shell约定的。 0
是“一切都很好”的惯例,其他数字意味着某些事情是错误的,但确切含义是特定于应用程序的
因此,如果您的脚本返回带有exit(0);
的shell,则调用者知道它已成功,等等。
答案 2 :(得分:0)
我猜你正在寻找的答案是这些值是“Truthy”和“Falsey”值。
它们不是true
和false
的布尔值。但是,对于if()
或while()
语句,评估它们将等同于真值或假值。
以下是关于真实,虚假,真实和虚假的更多阅读:
答案 3 :(得分:0)
PHP会将0
评估为false
,将1
评估为true
- 意味着它的行为类似于布尔值。
if (1) echo 'true';
if (0) echo 'false';
// result: true
话虽如此,if(-1)
也会像if(1000)
那样返回true,因为已经说过它确实依赖于上下文。