首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Strpos 2变量

Strpos 2变量
EN

Stack Overflow用户
提问于 2018-12-15 21:43:41
回答 2查看 360关注 0票数 0

我想检查$string中的两个单词,我的条件应该有两个单词而不仅仅是一个

我使用了以下代码,但只有当它至少有一个变量时才能工作

代码语言:javascript
复制
if ((strpos($string,'Good') || strpos($string,'Excellent')) === true) {
    $pid= '1';
} else { 
    $pid= '0'; 
} 

echo $pid;

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-15 21:53:04

重要的是要记住,strpos()返回字符串的索引,该索引可以是零,如果检查不正确,该索引的计算结果为false。当您想要检查两种条件是否为真时,请始终严格地进行比较,不要使用运算符。

代码语言:javascript
复制
if (strpos($string,'Good') !== false && strpos($string,'Excellent') !== false) {
    $pid= '1';
} else { 
    $pid= '0'; 
} 

或者,更简洁地使用三元

代码语言:javascript
复制
$pid = (strpos($string,'Good') !== false && strpos($string,'Excellent') !== false) ? 1 : 0;

为了扩展strpos的使用,考虑一下这段代码,它返回"no“,因为"Good”位于零位置。

代码语言:javascript
复制
$string = "Good morning";
if (strpos($string, "Good")) {
    echo "yes";
} else {
    echo "no";
}

从手册中:

警告 此函数可能返回布尔值FALSE,,但也可能返回一个计算为FALSE.的非布尔值。有关更多信息,请阅读有关布尔人的部分。使用===算子测试此函数的返回值。

票数 4
EN

Stack Overflow用户

发布于 2018-12-15 21:47:26

尽管regexes可以帮助您变得更具体,但您可以使用&&来代替x-,这样就可以考虑大写字母和单词边界。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53797516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档