PHP: 如何修复此代码以使其正常工作?

PHP: How can this code be fixed to work correctly?

考虑以下代码:

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

输出将是:

"yahoo" 不包含 "google" ,为什么?如何修复此代码以使其正常工作?

试图理解第一个问题link

哦,你举错词例了

如果你有单词 "yababababa" 和 "yaba" 它是不同的。 strpos returns 子串在字符串中的位置,所以如果子串开始于父词的开头,它 returns 0,在简单条件下 if (strpos($str1,$str2) 表示假,它说那里"yababababa".

中没有 "yaba"

您还必须检查来自 strpos 的 return 值的类型 - 它必须是布尔值 false/true。

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