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

search for in the

Nouveautés> <Ce qui a changé dans PHP 5.4.x
[edit] Last updated: Fri, 25 May 2012

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 :

  • Safe mode n'est plus supporté. Toute application se reposant sur ce paramètre devra être revue, notamment en terme de sécurité.
  • Magic quotes ont été supprimées. Toute application se reposant sur ce paramètre devra être revue, notamment en terme de sécurité get_magic_quotes_gpc() et get_magic_quotes_runtime() retournent désormais toujours FALSE. set_magic_quotes_runtime() renvoie une erreur E_CORE_ERROR.
  • Les directives du php.ini register_globals et register_long_arrays ont été supprimées.
  • Call-time pass by reference a été supprimée.
  • Les instructions break et continue n'acceptent plus des paramètres variables (exemple: break 1 + foo() * $bar;). Les arguments statiques fonctionnent toujours, par exemple break 2;.
  • Dans l'extension date, le fuseau ne peut plus être défini au moyen de la variable d'environnement TZ. Vous devez préciser un fuseau en utilisant l'option du php.ini date.timezone ou la fonction date_default_timezone_set(). PHP n'essayera plus de deviner le fuseau et utilisera par défaut "UTC" tout en emettant une alerte de niveau E_WARNING.
  • Les index de tableaux non numériques concernant les chaines - exemple: $a['foo'] où $a est une chaine - retournent maintenant false sur un isset() et true sur un empty(), et produisent une alerte de niveau E_WARNING si vous les utilisez. Les index de type flottant, bool et null produisent une alerte de niveau E_NOTICE. Les index de type chaine numérique (exemple: $a['2']) fonctionnent comme avant. Notez que les index tels que '12.3' et '5 foobar' sont considérés comme non-numériques et produisent une alerte de niveau E_WARNING, mais sont convertis vers 12 et 5 respectivement, pour des raisons de compatibilité. Note : Le code suivant retourne un résultat différent. $str='abc';var_dump(isset($str['x'])); // false en PHP 5.4 ou supérieure mais true en 5.3 ou inférieure
  • Convertir un tableau en chaine génère maintenant une erreur E_NOTICE mais le résultat du transtypage reste intact : la chaine "Array".
  • Transformer NULL, FALSE, ou la chaine vide en objet en lui ajoutant un attribut génère maintenant une erreur E_WARNING, au lieu de E_STRICT.
  • Des noms de paramètres qui tentent de masquer une super globale mènent maintenant vers une erreur fatale. Par exemple: function foo($_GET, $_POST) {}.
  • Les algorithmes Salsa10 et Salsa20 de hash ont été retirés.
  • array_combine() retourne maintenant array() au lieu de FALSE lorsque vous lui passez deux tableaux vides comme paramètres.
  • Si vous utilisez htmlentities() avec un jeu de caractères asiatique, elle fonctionnera comme htmlspecialchars() - ça a toujours été le cas, mais maintenant une erreur E_STRICT sera levée.

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

Les fonctions suivantes ont été supprimées:



add a note add a note User Contributed Notes Évolutions incompatibles avec les versions précédentes
There are no user contributed notes for this page.

 
show source | credits | sitemap | contact | advertising | mirror sites