Issues with strpos

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
Not quite sure what's happening here, the docs for strpos() say:

"Returns the position as an integer. If needle  is not found, strpos()
will return boolean  FALSE."

Looks fine, I can simply do:

if(strpos("michael", "m")

But then the docs go on to say:

"This function may return Boolean FALSE, but may also return a non-
Boolean value which evaluates to FALSE, such as 0 or "". Please read
the section on Booleans for more information. Use the === operator for
testing the return value of this function."

This seems a little inconsistent to me, means I can't do the

if(strpos("michael", "z") >= 0)
     //found it!

Because that always returns as found, which clearly it isn't. I can
use comparison operators to check for type, but only using "===" or "!

I only want a function to tell me if the string was found (>= 0), I
don't care which position it was etc

What do others use to do this? Preferably without converting to an
array then doing an array find or something.

Re: Issues with strpos wrote:
Quoted text here. Click to load it

Use: if (strpos("michael", "m") !== False) ...

Re: Issues with strpos

Quoted text here. Click to load it

Thanks ljb

Site Timeline