3

strpos文字列変数で「test」というフレーズを検索しようとし$stringていますが、「test」が含まれていない場合は、別の変数$changeが次のように再定義されます$string2$change以前に定義されている場合)

if (strpos($string, 'test') == false) {
  $change = $string2;
  break;
 }      

しかし、残念ながらそれは機能しません。

上記に間違いはありますか?

ありがとうございました。

4

3 に答える 3

6

strposは、文字列が見つからない場合はfalseを返します。これは、PHPの型に固有でない条件付きの0に相当します。strposを使用して比較する場合は、必ず===演算子を使用してください。

if (strpos($string, 'test') === false) {
  $change = $string2;
  break;
} 
于 2009-10-20T01:46:54.313 に答える
3

使ってみてください

if (strpos($string, 'test') === false)

=== instead of ==
于 2009-10-20T01:49:03.597 に答える
3

strpos「false」を返すか、「0」を返す可能性があります。これはfalseと誤解される可能性があるため、==比較演算子(「等しい」を意味する)を使用する代わりに、 ===(と同じを意味する)を使用する必要があります。休憩の代わりに三項ステートメントを検討することもできます。

  $change = (strpos($string, 'test') === false) ? $string2 : $change;
于 2009-10-20T01:54:09.420 に答える