2017-05-18 10 views
-4

は、次のコードを考えてみましょう:PHP:このコードを正しく動作させるにはどうしたらよいですか?

$str1 = 'yahoo'; 
$str2 = 'google'; 
if (strpos($str1,$str2)) { 
    echo "\"" . $str1 . "\" contains \"" . $str2 . "\""; 
} else { 
    echo "\"" . $str1 . "\" does not contain \"" . $str2 . "\""; 
} 

出力は次のようになります。

"ヤフー" は "グーグル" が含まれていない、なぜ?このコードは、どのように正しく動作するように修正できますか?このlink

+2

あなたは何を期待していますか?文字列 "yahoo"には "google"という部分文字列はありません。 –

+1

正しく動作します。あなたが「正しく働く」ことによって何を意味するかを定義します。期待される成果は? – axiac

+0

質問を更新しました –

答えて

1

ああの最初の質問を理解しようと

は、あなたは言葉の間違った例を得ました。

「ヤババババ」と「ヤバ」という言葉が異なる場合は、 Strposは文字列内の部分文字列の位置を返します。したがって、部分文字列が親単語の先頭から始まる場合は0を返します。単純な条件ではif (strpos($str1,$str2)はfalseを意味し、「yabaababa」には「yaba」はありません。

strposからの戻り値の型もチェックする必要があります。これは真偽値である必要があります。

if (strpos($str1,$str2) !== false)

+0

それを得ました。おかげで。 :) –

関連する問題