La plupart des fonctions internes de PHP ont été réécrites pour qu'elles retournent TRUE en cas de succès, et FALSE en cas d'erreur, au contraire des fonctions qui retournaient 0 et -1 en PHP/FI 2.0. Le nouveau comportement est beaucoup plus logique, comme $fp = fopen("/your/file") or fail("fichier non trouvé!");. Étant donné que PHP/FI 2.0 n'a pas de règle claire à propos de ce que les fonctions doivent retourner en cas d'échec, la plupart des scripts devront probablement être vérifiés manuellement, après avoir utilisé le convertisseur 2.0 à 3.0.
Example#1 Migration depuis 2.0 : valeurs retournées, ancienne méthode
<?php
$fp = fopen($file, "r");
if ($fp == -1);
echo("Impossible d'ouvrir le fichier $file en lecture <br />\n");
endif;
?>
Example#2 Migration depuis 2.0 : valeurs retournées, nouvelle façon
<?php
$fp = @fopen($file, "r") or
print("Impossible d'ouvrir le fichier $file en lecture<br />\n");
?>