Manuel PHP
Précédent | Annexe C. Migration de PHP/FI 2.0 à PHP 3.0 | Suivant

# Diverses incompatibilités

- Le module PHP 3.0 pour Apache n'accepte plus les versions d'Apache antérieure à 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. A la place, il convertit les arguments en nombres et effectue une addition numérique. Utilisez `"."` à la place.

Exemple C-11. 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. A 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;
    ?>
Cela va afficher 11 en PHP 3.0.

Précédent | Sommaire | Suivant
La valeur `TRUE`/`FALSE` comme retour de fonctions | Niveau supérieur | Débuggeur PHP