Question

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.

Was it helpful?

Solution

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;
} 

OTHER TIPS

Try using

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

=== instead of ==

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;
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top