Strpos 2变量

时间:2018-12-15 21:43:42

标签: php strpos

我想检查$string中是否有2个单词,我的病情应该使2个单词不仅是1个单词

我使用了以下代码,但只有在至少有1个变量的情况下,它才起作用

if ((strpos($string,'Good') || strpos($string,'Excellent')) === true) {
    $pid= '1';
} else { 
    $pid= '0'; 
} 

echo $pid;

有没有办法让它同时检查两个变量?

2 个答案:

答案 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)

您可以替换||使用&&,即使正则表达式可以帮助您变得更具体,也可以考虑大写和单词边界。