3

私が書いた長い関数に問題があったので、それを分解したところ、strpos()関数にあるようです。

干し草の山に針がはっきりと存在しているにもかかわらず、それは偽を返します。私の人生では、奇妙なことに、針を「サム」に変更すると真になる理由がわかりません。

function verify_url($url) {
    if (strpos($url, "http://")) {
        return $url;
    } else {
        echo "error";
    }
}


$url = "http://sam.com";

echo verify_url($url);
4

2 に答える 2

9

false ではなく 0 を返しています。テストでは、ifPHP は整数値 0 をブール値 false として評価します。

strpos($url, "http://") !== false値とデータ型の両方をチェックするために使用します。これを厳密な比較と呼びます。

マニュアル:比較演算子strpos() .

于 2013-05-15T12:12:43.090 に答える
2

あなたを以下のものに置き換えてくださいif (strpos($url, "http://"))

if (strpos($url, "http://") !== false)

位置で見つかったので、与えています0(そして与えていません)falsehttp://0th

于 2013-05-15T12:13:39.733 に答える