-3

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

4

4 回答 4

2

我怀疑您是在询问使用 with 的比较函数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(包括任何资源)。

于 2013-07-24T17:38:32.777 回答
0

这与 PHP 无关。这是关于外壳约定的。0是“一切正常”的约定 其他数字表示有问题,但确切含义是特定于应用程序的

因此,如果您的脚本返回到 shell,exit(0);调用者知道它是成功的,等等。

于 2013-07-24T17:35:36.533 回答
0

我猜您正在寻找的答案是这些值是“Truthy”和“Falsey”值。

它们不是现在的布尔truefalseif()但是,出于或while()陈述的目的,评估它们将等同于真值或假值。

这里有更多关于真、假、真、假的读物:

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

于 2013-07-24T17:39:34.517 回答
0

PHP 将评估0asfalse1as true- 这意味着它的行为类似于布尔值。

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

话虽如此,if(-1)也将返回true,if(1000)因为它已经说过它确实取决于上下文。

于 2013-07-24T17:41:31.247 回答