Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Appendices : Migrating from PHP/FI 2 to PHP 3 : Function TRUE/FALSE return values

Function TRUE/FALSE return values

Most internal functions have been rewritten so they return TRUE when successful and FALSE when failing, as opposed to 0 and -1 in PHP/FI 2.0, respectively. The new behaviour allows for more logical code, like $fp = fopen("/your/file") or fail("darn!");. Because PHP/FI 2.0 had no clear rules for what functions should return when they failed, most such scripts will probably have to be checked manually after using the 2.0 to 3.0 convertor.

Example F.9. Migration from 2.0: return values, old code

$fp = fopen($file, "r");
if (
$fp == -1);
   echo(
"Could not open $file for reading<br />\n");
endif;
?>


Example F.10. Migration from 2.0: return values, new code

$fp = @fopen($file, "r") or print("Could not open $file for reading<br />\n"); ?>


Code Examples / Notes » migration.truefalse

dtampe

Try this:
if(0=='FALSE')
     echo "It works but it should not work";
1 days of headheache...
Hope it helps!
DamTam


oliver

I guess you are indeed wrong. You are right, 'FALSE' is beeing evaluated as a string. But it is compared with a number, so automatic type conversion takes place. 'FALSE' as well as 'FOO' and so on are converted to 0. And (0==0) is obviously true. So the number does matter. Try an other number...
Oliver


wildpeaks

'FALSE' is interpreted as a string containing the word false and not as a boolean value, and comparing a non-null string to a number, whatever the number is, returns true (i may be wrong).

Change Language


Follow Navioo On Twitter
About the incompatibilities in 3.0
old_function
Start/end tags
if..endif syntax
while syntax
Expression types
Error messages have changed
Short-circuited boolean evaluation
Function TRUE/FALSE return values
Other incompatibilities
eXTReMe Tracker