如何在条件中使用strpos实现字符串追加?避免双条件&&且满足双条件时追加两词
解决思路:拆分独立判断,避免双条件逻辑
嘿,我懂你不想用那种&&连起来的双条件判断的想法!其实很简单——把原来的else if拆成两个独立的if语句就行,这样两个条件只要满足就都会执行,不会互相排斥。
修正后的基础代码
首先提个小细节:strpos()如果匹配到字符串开头(位置0)会返回0,直接用if(strpos(...))会把0当成false,所以严谨点要加上!== false来准确判断匹配成功:
$a = 'hello'; $b = ''; // 两个独立的if,互不影响 if (strpos($a, 'lo') !== false) { $b .= 'lo'; } if (strpos($a, 'he') !== false) { $b .= 'he'; } echo $b; // 输出:lohe
原来的代码用了else if,所以只要第一个条件成立,第二个就会被跳过。改成独立的if后,不管第一个是否满足,都会检查第二个,这样两个关键词都存在时就会都追加到$b里啦。
更灵活的扩展方案
如果以后还要加更多关键词,写一堆if会很麻烦,咱们可以把关键词放到数组里循环处理,完全不用写任何多条件判断:
$a = 'hello'; $b = ''; // 把需要检查的关键词都放这里 $targetWords = ['lo', 'he']; foreach ($targetWords as $word) { if (strpos($a, $word) !== false) { $b .= $word; } } echo $b; // 同样输出:lohe
这样以后要加新的关键词,只需要往数组里加元素就行,代码更简洁易维护~
内容的提问来源于stack exchange,提问作者patesz
相关产品推荐
相关产品推荐

