downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Nouvelles fonctionnalités> <Ce qui change en PHP 5.3.x
Last updated: Fri, 14 Aug 2009

view this page in

Évolutions incompatibles avec les versions précédentes

Même si l'essentiel du code PHP 5 va fonctionner sans modification, il faut faire attention aux situations suivantes, qui sont incompatibles avec les versions précédentes :

  • L'API interne d'analyse des paramètres a été appliquée à toute les extensions qui sont livrées avec PHP 5.3. Cette API retourne NULL si des paramètres incompatibles sont passés à la fonction. Il existe quelques exceptions, comme la fonction get_class() qui va retourner FALSE en cas d'erreur.
  • clearstatcache() ne vide pas le cache de chemins de la fonction realpath() par défaut.
  • realpath() est maintenant indépendant du système, et fonctionne sur toutes les plate-formes.
  • Les fonctions call_user_func() et similaires propages la variable $this, même si la fonction appelante est la classe parente.
  • Les fonctions de tableaux : natsort(), natcasesort(), usort(), uasort(), uksort(), array_flip() et array_unique() n'acceptent plus les objets passés comme arguments. Si vous avez besoin d'accéder à leurs propriétés comme dans un tableau, il faudra commencer par transtyper les objets en tableau.
  • Le comportement des fonctions qui ont des paramètres par référence mais sont passés par valeur a changé. Alors que la fonction acceptait des arguments par valeur, une alerte est maintenant émise, et tous les paramètres par référence sont mis à NULL.
  • La nouvelle bibliothèque mysqlnd impose l'utilisation du nouveau format de mot de passe de MySQL 4.1 (et plus récent). L'utilisation du vieux format de 16 octets fait que mysql_connect() produit le message d'erreur suivant : "mysqlnd cannot connect to MySQL 4.1+ using old authentication".
  • Le caractère / final a été supprimé des classes SplFileInfo et des autres classes de dossier similaires.
  • La fonction magique __toString n'accepte plus d'arguments.
  • Les méthodes magiques __get, __set, __isset, __unset, __call, doivent toujours être publiques, et ne peuvent plus être statiques. La signature des méthodes est vérifiées à la compilation.
  • La méthode magique __call est appelée en cas d'accès à une méthode privée ou protégée.

Les mots-clé suivant sont maintenant réservés, et ne peuvent plus être utilisés dans les noms de fonctions, de classes, etc.



add a note add a note User Contributed Notes
Évolutions incompatibles avec les versions précédentes
scott dot mcnaught at synergy8 dot com
07-Oct-2009 02:34
fopen('/dev/stdin/') no longer works
use fopen('php://stdin') instead

Cheers,
Scott
Chris Bolt
16-Sep-2009 02:03
call_user_func_array() no longer accepts null as a second parameter and calls the function. It now emits a warning and does not call the function.

Nouvelles fonctionnalités> <Ce qui change en PHP 5.3.x
Last updated: Fri, 14 Aug 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites