-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 の値が空でない場合も同様$Test == 1です$Test == TRUE($Test)

あなたの括弧について。適用するロジックが複数ある場合はそれらを使用し、そうでない場合はオプションです。

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

}

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

}

||また、 or&&をチェックするためにTRUEorを使用する代わりに、ブール値に対してorFALSEを使用します。ORAND

于 2012-08-13T13:57:37.063 に答える
0

括弧 ( ( )) の一部は不要ですが、このように機能するはずです。

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

$strにあるテキストで何か、何か2、何か3を検索すればOKです。

しかし、something、something2、または something3 で $str からの文字列を見つけようと考えた場合、ここに問題があります。

この php.net/manual/en/function.strpos.php をご覧ください。

よろしく

于 2012-08-13T14:04:52.173 に答える
0

どちらの場合も同じ結果になります。あなたの意図が正しく言及されていません。ここでエラーが発生していますか?

詳細については、http://www.phpsyntax.blogspot.inを参照してください。

于 2012-08-13T14:01:36.770 に答える