"Strpos" ile Hatam

3 Cevap php

Ben ifade "test" için dize değişkeni $string aramak için strpos almak için çalışıyorum ve "test" başka değişken içermiyorsa $change yeniden tanımlanıyor olarak $string2 (burada $change, daha önce tanımlanmıştır)

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

Ama ne yazık ki çalışmıyor.

Yukarıda bir hata var mı?

Teşekkür ederim.

3 Cevap

PHP bir tip-spesifik koşullu 0'a eşdeğerdir dize, bulamazsa strpos false döndürür. Strpos kullanırken karşılaştırırken === operatörü kullandığınızdan emin olun.

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

Kullanmayı deneyin

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

=== instead of ==

strpos "false" dönebilirsiniz ya da yanlış olarak oynanırsa edilebilir "0" döndürebilir, bu nedenle yerine ("eşit" anlamına gelir) == karşılaştırma operatörü kullanarak yapmak zorunda === (özdeş anlamına gelir) kullanın. Ayrıca yerine bir ara bir üçlü açıklama düşünebilirsiniz:

  $change = (strpos($string, 'test') === false) ? $string2 : $change;