Bien que la plupart des codes PHP 4 existants devraient fonctionner, il convient de noter quelques incompatibilités avec les versions antérieures de PHP :
strrpos() et strripos() utilisent maintenant une chaîne de caractères (un seul caractère auparavant) en tant qu'élément de recherche.
L'utilisation d'offsets illégaux sur une chaîne de caractère entraîne maintenant un message E_ERROR au lieu d'un message E_WARNING auparavant.
array_merge() a été modifié pour n'accepter que des tableaux. Pour chaque variable passée en paramètre autre qu'un tableau, un message E_WARNING sera envoyé.
La variable de serveur PATH_TRANSLATED n'est plus définie implicitement avec Apache2 SAPI contrairement à auparavant (PHP 4) où elle était fixée avec la même valeur que SCRIPT_FILENAME lorsqu' Apache ne la renseignait pas. Cette modification a été apportée afin d'être en conformité avec les specifications CGI. Merci de consulter le bug #23610 pour plus d'informations.
La constante T_ML_CONSTANT n'est plus définie par l'extension Tokenizer. Si error_reporting est mis à E_ALL, PHP va générer un notice. A la place de T_ML_CONSTANT pour /* */, la constante T_COMMENT est utilisée, d'ailleurs // et /* */ sont maintenant assimilés en tant que constante T_COMMENT. Toutefois les commentaires de style PHPDoc /** */ , qui à partir de PHP 5 sont parsés par PHP, sont reconnus en tant que T_DOC_COMMENT.
$_SERVER est maintenant renseigné avec argc and argv si votre variables_order inclus "S". Si vous avez configuré votre système pour qu'il ne créé pas $_SERVER, il ne seront bien sûr pas renseignés. Cette modification à été effectuée afin que argc et argv soient toujours accessibles dans la version CLI quelque soit la valeur de variables_order.
Les classes doivent être déclarées avant d'être utilisées
Exemple B-1. strrpos() et strripos() utilisent maintenant une chaîne de caractère en tant que needle
|
L'exemple ci-dessous fonctionnait avec PHP 4, il entraîne une erreur fatale avec PHP 5.
Précédent | Sommaire | Suivant |
Migration de PHP 4 vers PHP 5 | Niveau supérieur | CLI et CGI |