我想检查$string
中是否有2个单词,我的病情应该使2个单词不仅是1个单词
我使用了以下代码,但只有在至少有1个变量的情况下,它才起作用
if ((strpos($string,'Good') || strpos($string,'Excellent')) === true) {
$pid= '1';
} else {
$pid= '0';
}
echo $pid;
有没有办法让它同时检查两个变量?
答案 0 :(得分:4)
请记住,strpos()
返回字符串的索引,该索引可以为零,如果未正确检查,则计算为false。要检查两者的条件是否成立时,请务必严格比较,不要使用或运算符。
double arr[] = {42.42};
printf("%g", parallel_max(arr, arr+1));
或者更简洁地使用ternary:
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;
,请考虑以下代码,该代码返回“ no”,因为“ Good”位于第零位置。
strpos
从手册:
警告
此函数可以返回布尔值
$string = "Good morning"; if (strpos($string, "Good")) { echo "yes"; } else { echo "no"; }
,但也可以返回非布尔值,其值为FALSE
。请阅读Booleans上的部分以获取更多信息。使用the === operator测试此函数的返回值。
答案 1 :(得分:0)
您可以替换||使用&&,即使正则表达式可以帮助您变得更具体,也可以考虑大写和单词边界。