1

配列に何かがあるかどうかを確認してキーを取得したい場合は、array_search()関数を使用します。

関数が true と正確に等しい (=== true) と比較すると false が返され、false と正確に等しくない (!== false) と比較すると true が返されるのはなぜですか?

<?php
    if(array_search($value, $array) === true)
    {
        // Fails
    }

    if(array_search($value, $array) !== false)
    {
        // Succeeds
    }
?>

前もって感謝します。

4

4 に答える 4

10

array_searchは、一致が見つかったときに針を返します。一致が見つからない場合にのみ false を返します。これが、あなたのケースでは反対のことが機能する理由です。

配列内に見つかった場合は needle のキーを返し、それ以外の場合は FALSE を返します。

于 2012-04-24T08:24:53.917 に答える
0

array_search()true を返しません。

何も見つからない場合はfalseのみを返します。それ以外の場合は、一致した要素のキーを返します。

説明書によると

array_search — 指定された値の配列を検索し、成功した場合は対応するキーを返します ....

配列内に見つかった場合は needle のキーを返し、それ以外の場合は FALSE を返します。

于 2012-04-24T08:25:18.683 に答える
0

呼び出しが成功するとキー no true が返されるため、失敗します。

見つからない場合は false が返されるので === false で問題ありません

マニュアルから:

配列内に見つかった場合は needle のキーを返し、それ以外の場合は FALSE を返します。

于 2012-04-24T08:25:51.530 に答える