-3

PHPで1、-1と0を返すことの違いは何ですか? それらは何を意味しますか?私が知りたいのは、「return 1」が真または偽を指しているのかということです。'return -1' と 'return 0' についても同様です。

4

4 に答える 4

2

usort()1、-1、または 0 を返すのが典型的な唯一の場所であるため、 で使用する比較関数について質問していると思われます。

この場合、1は最初の値が 2 番目の値よりも大きいこと、最初の値が 2 番目の-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 (ゼロ)
  • float 0.0 (ゼロ)
  • 空の文字列、および文字列 "0"
  • 要素がゼロの配列
  • メンバー変数がゼロのオブジェクト (PHP 4 のみ)
  • 特別な型 NULL (未設定の変数を含む)
  • 空のタグから作成された SimpleXML オブジェクト

他のすべての値は TRUE と見なされます (すべてのリソースを含む)。

于 2013-07-24T17:38:32.777 に答える
0

PHPの話ではありません。それはシェル慣習についてです。0は「すべて問題ない」という慣習です。他の数字は何かがおかしいことを意味しますが、正確な意味はアプリケーション固有です

したがって、スクリプトがシェルに戻った場合exit(0);、呼び出し元はそれが成功したことを認識しています。

于 2013-07-24T17:35:36.533 に答える
0

PHP は0asfalseおよび1as として評価されますtrue- つまり、ブール値のように動作します。

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

そうは言っても、if(-1)も true を返すif(1000)ので、すでに述べたように、実際にはコンテキストに依存します。

于 2013-07-24T17:41:31.247 に答える