PHPで1、-1と0を返すことの違いは何ですか? それらは何を意味しますか?私が知りたいのは、「return 1」が真または偽を指しているのかということです。'return -1' と 'return 0' についても同様です。
4 に答える
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 と見なされます (すべてのリソースを含む)。
PHPの話ではありません。それはシェル慣習についてです。0
は「すべて問題ない」という慣習です。他の数字は何かがおかしいことを意味しますが、正確な意味はアプリケーション固有です
したがって、スクリプトがシェルに戻った場合exit(0);
、呼び出し元はそれが成功したことを認識しています。
PHP は0
asfalse
および1
as として評価されますtrue
- つまり、ブール値のように動作します。
if (1) echo 'true';
if (0) echo 'false';
// result: true
そうは言っても、if(-1)
も true を返すif(1000)
ので、すでに述べたように、実際にはコンテキストに依存します。