PHP:返回1,-1和0之间的区别?

时间:2013-07-24 17:34:17

标签: php

在PHP中返回1,-1和0之间有什么区别?它们意味着什么?我想知道的是,'返回1'指的是真还是假?同样关于'return -1'和'return 0'。

4 个答案:

答案 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”值。

它们不是truefalse的布尔值。但是,对于if()while()语句,评估它们将等同于真值或假值。

以下是关于真实,虚假,真实和虚假的更多阅读:

http://php.net/manual/en/types.comparisons.php

答案 3 :(得分:0)

PHP会将0评估为false,将1评估为true - 意味着它的行为类似于布尔值。

if (1) echo 'true';
if (0) echo 'false';
// result: true

话虽如此,if(-1)也会像if(1000)那样返回true,因为已经说过它确实依赖于上下文。