By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,988 Members | 1,360 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,988 IT Pros & Developers. It's quick & easy.

strpos question

P: n/a
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.

<?php
$dn = "ABC-DEF";

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

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

Jun 29 '06 #1
Share this Question
Share on Google+
2 Replies


P: n/a
drec wrote:
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.

<?php
$dn = "ABC-DEF";

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

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


Yes, read the manual. :-)

It is such a common mistake php.net shouts a warning when describing the
function.

Read this:
http://nl2.php.net/manual/en/function.strpos.php

Warning

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.
I think yours is a typical 0 that evaluates to false.
Regards,
Erwin Moller

Jun 29 '06 #2

P: n/a
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.

<?php
$dn = "ABC-DEF";

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

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


RTFM: http://php.net/strpos

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.

Use:
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ö
sp**@outolempi.net | Gedoon-S @ IRCnet | rot13(xv***@bhgbyrzcv.arg)
Jun 29 '06 #3

This discussion thread is closed

Replies have been disabled for this discussion.