Re: strpos question

drec kirjoitti:
I am trying to right an if statment using strpos to determine if the
string exists in the variable, however I seem to be getting the wrong
effect. Here is my script.

$dn = "ABC-DEF";

$pos = strpos( $dn, "ABC-DEF" );
if ( $pos != FALSE )
echo 'variable contains value';
echo ' variable does not contain value' ;

It keeps returning does not contain value. I am kinda new to strpos,
any suggestions?


Strpos returns the position of $haystack where $needle begins, otherwise false if $needle is not found. In this case, the position is zero. When you compare integer value zero with boolean value false in loose typed language, they match. If you want to strictly compare and distinguish the difference between boolean false and integer zero, you need to use strict comparison operators.

if ( $pos !== FALSE )

!== is the type specific strict comparison operator, which checks also for variable types as well as values. Then, when you compare boolean false to integer zero, they do not match, but false and false will.

This is all explained in the manual if you'd just care to Read The Fine Manual.

"En ole paha ihminen, mutta omenat ovat elinkeinoni." -Perttu Sirviö
spam@xxxxxxxxxxxxx | Gedoon-S @ IRCnet | rot13(xvzzb@xxxxxxxxxxxxx)