Alors que la version 5.2 de PHP est sortie en novembre dernier, la 6ème version commence à prendre forme, et il semble possible qu'une première bêta sorte pour la fin de l'année 2007.
Voici quelques uns des changements que cette nouvelle mouture devrait apporter.

Ce qui disparaîtra :


  • Suppression des register globals
  • Suppression des magic quotes
  • Suppression du safe mode
  • Suppression du retour de fonction par référence
  • Suppression du mode de compatibilité avec zend.ze1
  • Suppression des super-globales $HTTP_*_VARS


Ce qui changera :

- Le noyau PHP supportera l'UNICODE, pour les mots clés, les noms de fonctions et de variables, les chaînes, les expressions régulières, et de façon générale toutes les données manipulées par PHP.

- Les extensions Fileinfo, XMLReader et XMLWriter seront intégrées par défaut à la distribution PHP.

- L'extension ereg passe dans la librairie PECL, et les expressions régulières PCRE ne pourront plus être désactivées.

- Un nouvel entier de 64 bits sera ajouté: int64. L'entier par défaut int sera toujours de 32 bits.

- La commande break pourra désormais être utilisée avec un label. Il sera donc possible de faire un saut à la suite d'un break. Ex: break fin;.

- La commande ifsetor() ne verra peut-être pas le jour, en revanche le deuxième paramètre de l'opérateur ternaire ?: deviendra facultatif, et l'instruction expr1?:expr2 sera alors équivalente à expr1?expr1:expr2. Ex: $foo = $_GET["foo"] ?: 42;.

- On pourra désormais parcourir des tableaux multidimensionnels avec foreach(). Ex: foreach( $a as $k => list($a, $b)).

- La notation {} ne permettra plus d'accéder aux éléments d'une chaîne. La notation [] incluera les fonctionnalités de substr() et array_slice(). Ex: $string[2,] renverra la chaîne sans les deux premiers caractères.

- Il est probable que les espaces de noms soient inclus à PHP 6.

- L'appel d'une fonction dynamique avec une méthode statique entraînera une erreur fatale.

- Le cache d'opcode APC sera inclus en standard dans la distribution PHP mais ne sera pas activé par défaut.

- Le niveau d'erreur E_STRICT, apparu dans PHP 5, sera intégré par défaut à E_ALL.

Prepare for PHP 6

Proposé par Laurent BELLO & Eric QUANTIN