-3

这是我的代码,

  $em= strpos($str, 'something');
  $em2= strpos($str, 'something2');
  $em3= strpos($str, 'something3');
////////triggering only if either of them exist

  if (($em!== false)||($em2!== false)||($em3!== false)) {
  some action
  }

我的编码正确吗?或者我错过了什么?请建议。

应该是这样吗?

 if (!(($em== false)||($em2== false)||($em3 == false))) {
4

5 回答 5

2

要检查是否strpos()没有找到您需要使用的子字符串(===比较值类型),因为与.strpos()0false==

编辑:作者编辑了他的问题。该答案涵盖了原始问题。

于 2012-08-13T13:57:41.917 回答
1

如果要检查布尔值,则应始终使用===or !==

主要原因是在 PHP 中,$Test == 1或者$Test == TRUE如果($Test)$Test 的值不为空则相同。

关于你的括号。如果您有超过 1 个要应用的逻辑,请使用它们,如果没有,则可选。

if($Test === TRUE OR $Foo === TRUE){

}

if($Test === TRUE OR ($Foo === TRUE AND $Bar === TRUE)){

}

此外,不要使用||or&&来检查TRUEor ,而是FALSE使用ORorAND反对布尔值。

于 2012-08-13T13:57:37.063 回答
0

两种情况都给出相同的结果。没有正确提及您的意图是什么。你这里有什么错误吗?

您可以在http://www.phpsyntax.blogspot.in找到更多信息

于 2012-08-13T14:01:36.770 回答
0

如果您在 $str 中的文本中搜索 something,something2,something3 就可以了。

但是,如果您想从 $str 中的某物、某物 2 或某物 3 中找到一个字符串,那么问题就在这里。

你应该看看这个 php.net/manual/en/function.strpos.php

问候

于 2012-08-13T14:04:52.173 回答
0

您的一些括号 ( ( )) 不是必需的,但它应该像这样工作。

if (!($em=== false || $em2=== false || $em3 === false)) {
       // do something
}
于 2012-08-13T13:57:25.540 回答