我想检查$string中的两个单词,我的条件应该有两个单词而不仅仅是一个
我使用了以下代码,但只有当它至少有一个变量时才能工作
if ((strpos($string,'Good') || strpos($string,'Excellent')) === true) {
$pid= '1';
} else {
$pid= '0';
}
echo $pid;有办法让它同时检查这两个变量吗?
发布于 2018-12-15 21:53:04
重要的是要记住,strpos()返回字符串的索引,该索引可以是零,如果检查不正确,该索引的计算结果为false。当您想要检查和两种条件是否为真时,请始终严格地进行比较,不要使用或运算符。
if (strpos($string,'Good') !== false && strpos($string,'Excellent') !== false) {
$pid= '1';
} else {
$pid= '0';
} 或者,更简洁地使用三元
$pid = (strpos($string,'Good') !== false && strpos($string,'Excellent') !== false) ? 1 : 0;为了扩展strpos的使用,考虑一下这段代码,它返回"no“,因为"Good”位于零位置。
$string = "Good morning";
if (strpos($string, "Good")) {
echo "yes";
} else {
echo "no";
}从手册中:
警告 此函数可能返回布尔值
FALSE,,但也可能返回一个计算为FALSE.的非布尔值。有关更多信息,请阅读有关布尔人的部分。使用===算子测试此函数的返回值。
发布于 2018-12-15 21:47:26
尽管regexes可以帮助您变得更具体,但您可以使用&&来代替x-,这样就可以考虑大写字母和单词边界。
https://stackoverflow.com/questions/53797516
复制相似问题