Re: newbie Q: How to say, "if the fileNAME is equal to...", or better yet, "if the fileNAME ends with '.jpg'"?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Chris schreef:

if (stripos(strrev($file), "gpj.") === 0) {
    echo $file;   }

note the ===, 3 equals signs here is very important! check the docs for why.

== means 'equals', and === means 'is identical to'.
Seems like they would do the same thing when comparing '0' to 'the position in the string where that substr is found'. Why not?

0 can mean false in php:

indeed, php is dynamically typed and happily auto-casts all of the place
without issue ... this can bite you in the ass if your not aware of how
php auto-casts various types, and which types have precendence.

the manual should help, additionally test your assumptions regularly on the cmdline
with snippets like:

php -r ' var_dump(("" == false), (1 == "1"), ("two" == 1), ("two" == false));'

using === o test equality force type to be checked as well as 'content' of
the given LH and RH expressions.

$found = 0;
....
if (!$found) {
  echo "File not found";
}

If a substr comparison matches at char 0:

$string = '12345';
$pos = substr($string, '1');

then without the '===' it would give the wrong result as $pos would be converted to false in this example.



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux