1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Faire évoluer un hébergement PHP 4 vers PHP 5.2
Depuis votre console d'administration, vous avez la possibilité de migrer votre espace d'hébergement sur un nouveau serveur qui possède la version de PHP 5.2. Attention toutefois de ne pas prendre cette opération à la légère.
PHP 4.x et PHP 5.2.x possèdent chacun leurs propres avantages et ne sont que peu compatibles entre eux; une bonne partie des scripts prévus pour PHP 4 ne fonctionneront pas avec PHP 5 et vice-versa. Avant de demander une migration pour changer de plateforme, tester tout votre site au complet sur votre propre machine (le serveur Web Apache est téléchargeable gratuitement sur http://www.apache.org, PHP est lui disponible sur http://www.php.org pour les versions 4 et 5).
Si vous utilisez des scripts PHP qui n’ont pas été conçus pour la version 5, il faut impérativement vérifier si leurs concepteurs proposent des mises à jour ou de nouvelles versions fonctionnant sur la version 5.
Vous avez écrit le code PHP de votre site il y a déjà plusieurs années et vous n'êtes pas certain qu'il fonctionne sous PHP 5? Voici quelques différences entre ces deux versions:
strrpos et stripos() utilisent maintenant une chaine entière. A la base, ces fonctions recherchent l'occurrence d'un seul caractère dans une chaine.
L'utilisation impropre d'un index sur une chaine de caractère produit une erreur E_ERROR au lien d'un avertissement E_WARNING (exemple : $str = 'abc'; unset($str[0]);)
array_merge() n'accepte plus que des tableaux. Si vous voulez rajouter un élément à un tableau et que vous voulez absolument utiliser cette fonction (et non array_push ou ), il va falloir mettre votre élément dans un tableau: array_merge($montableau, array ($monelement) ); Si vous utilisez quand même cette fonction avec un élément qui n'est pas un tableau, un avertissement E_WARNING est envoyé, et le tableau résultat est vide.
La variable serveur PATH_TRANSLATED ne contient plus forcément la même valeur qu'en PHP 4. Elle était utilisée parfois dans le cas d'une réécriture des liens sous apache (ModRewrite).
La constante T_ML_CONSTANT n'existe plus (elle était définie par l'extension Tokenizer).
La version CLI de PHP 5 utilisera toujours les variables globales $argc et $argv.
Un objet sans propriétés n'est plus considéré comme vide (empty)
get_class() retourne le nom de la fonction tel que déclaré, sans en modifier la casse. En PHP, le nom retourné était toujours en minuscule. De même pour les constantes magiques prédéfinies __CLASS__, __METHOD__ et __FUNCTION__.
ip2long() retourne maintenant le booléen faux (false) si l'adresse donnée est incorrecte. En PHP 4, la fonction retournait -1.
La fonction is_a() est dépréciée et ne doit plus être utilisée. Il faut utiliser l'opérateur instanceof à la place.
Vous ne pouvez plus réassigner $this dans un objet.
include_once() et require_once() normalisent d'abord le chemin du fichier Ă inclure sous Windows, donc inclure le fichier A.php et le fichier a.php revient Ă n'inclure qu'une seule fois le fichier.
Certains mots clefs sont réservés par PHP5et vous ne devez pas les utiliser: exception, interface, protected, throw, abstract, implements, clone, final, public, try, this, php_user_filter, private, catch. La plupart de ces mots-clefs viennent de l'extension de la conception objet de PHP 5, avec les concepts de variables privées/publiques, la gestion des erreurs (try/catch, que les fans de Java doivent connaitre par cœur) etc.