tags:

views:

111

answers:

3

hello, I am trying to get strpos to search string variable $string for the phrase "test" and if it doesn't contain test another variable $change is redefined as $string2 (where $change has been defined previously)

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

but unfortunately it doesn't work.

Is there a mistake in the above?

Thank you.

+3  A: 

strpos returns false if it does not find the string, which is equivalent to 0 in a type-unspecific conditional in PHP. Make sure to use the === operator when comparing using strpos.

if (strpos($string, 'test') === false) {
  $change = $string2;
  break;
}
Travis
+1 for agreement.
thephpdeveloper
+3  A: 

Try using

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

=== instead of ==
Shankar Ramachandran
+1  A: 

strpos can return "false" or can return "0" which can be misread as false, so instead of using the == comparison operator (which means "equal to") you have to use === (which means identical to). You might also consider a ternary statement instead of a break:

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