<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 本文档前面无关代码示例</span></span><span>
</span><span><span class="hljs-variable">$example</span></span><span> = </span><span><span class="hljs-string">"示例内容"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/**
* mb_strstr函数返回false时,如何判断并正确处理这种情况
*
* 在PHP中,mb_strstr函数用于在多字节字符串中查找子串,并返回子串及其后面的部分。
* 该函数的签名为:
* string|false mb_strstr(string $haystack, string $needle, bool $before_needle = false, ?string $encoding = null)
*
* 当查找的子串不存在时,mb_strstr会返回false。因此在使用时需要特别注意返回值的判断,
* 避免在后续操作中产生错误。
*
* 以下是判断和处理mb_strstr返回false的正确示例:
*/</span>
</span><span><span class="hljs-comment">// 定义一个含有多字节字符的字符串</span></span><span>
</span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"这是一个测试字符串,用于演示mb_strstr函数的使用。"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"测试"</span></span><span>;
</span><span><span class="hljs-comment">// 调用mb_strstr查找</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_strstr</span></span><span>(</span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-comment">// 子串不存在,进行相应处理</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"未找到子串 '<span class="hljs-subst">{$needle}</span></span></span><span>'。";
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-comment">// 子串存在,继续处理返回结果</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"找到子串 '<span class="hljs-subst">{$needle}</span></span></span><span>',结果为: " . </span><span><span class="hljs-variable">$result</span></span><span>;
}
<span class="hljs-comment">/**
* 注意事项:
* 1. 使用严格比较符号(===)判断返回值是否为false,避免将空字符串等误判。
* 2. 指定正确的编码参数,确保多字节字符的正确处理。
* 3. 如果仅需要判断子串是否存在,mb_strpos可能是更合适的选择。
*
* 小结:
* mb_strstr函数返回false表示未找到子串,通过严格判断返回值,
* 可以避免后续逻辑错误,保障程序的稳定运行。
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>