Diverses incompatibilités
- Le module PHP 3.0 pour Apache n'accepte plus les versions d'Apache antérieures à la version 1.2. Apache 1.2 ou plus récent est nécessaire.
- echo() n'utilise plus de chaîne de formatage. Il faut utiliser printf() à la place.
- En PHP/FI 2.0, un effet secondaire de l'implémentation faisait que $foo[0] était la même chose que $foo. Ce n'est plus vrai en PHP 3.0.
- Lire un tableau avec $array[] n'est plus valable. Ainsi, il n'est plus possible de passer en revue un tableau avec des boucles telles que $data = $array[]. Utilisez current() et next() à la place. Ainsi, $array1[] = $array2 n'ajoute pas les valeurs de $array2 à $array1, mais crée un nouvel élément dans $array1 et y affecte $array2 comme dernier élément. Voir aussi les tableaux multidimensionnels.
- "+" n'est plus utilisable comme opérateur de concaténation de chaîne. À la place, il convertit les arguments en nombres et effectue une addition numérique. Utilisez "." à la place.
Example#1 Migration depuis 2.0 : concaténation de chaînes
<?php
echo "1" + "1";
?>
En PHP 2.0 cela retournerait 11, en PHP 3.0 cela va retourner 2. À la place, faites :
<?php
echo "1"."1";
?>
<?php
$a = 1;
$b = 1;
echo $a + $b;
?>
Cela va afficher 2, tant en PHP 2.0 qu'en 3.0.
<?php
$a = 1;
$b = 1;
echo $a.$b;
?>