Modifications en POO (Programmation orientée objet)

Les changements du modèle objet de PHP 5 sont recensés ici. Plus d'informations et quelques notes peuvent être trouvées dans la documentation sur la POO en PHP5.

Version Description
5.4.0 Changement : Si une classe abstraite définit une signature pour le constructeur, celle-ci sera désormais appliquée.
5.3.3 Changement : Les méthodes ayant le même nom que la classe dans un espace de noms ne sont plus considérées comme constructeur. Ce changement n'affecte pas les classes sans espace de nom.
5.3.0 Changement : les classes qui implémentent une interface avec des méthodes ayant des valeurs par défaut définies dans leurs prototypes ne sont plus obligées de respecter les valeurs par défaut définies dans l'interface.
5.3.0 Changement : Il est maintenant possible de référencer une classe en utilisant une variable (ex: echo $classname::constant;). La valeur de la variable ne peut être un mot-clé (ex: self, parent ou static).
5.3.0 Changement : Une erreur de niveau E_WARNING est levée si les méthodes magiques de surcharge sont déclarées comme statiques. La visibilité publique est aussi requise.
5.3.0 Changement : Avant 5.3.0, les exceptions lancées dans la fonction __autoload() ne pouvaient être traitées dans un bloc catch et résultaient en une erreur fatale. A présent, les exceptions levées dans la fonction __autoload peuvent être attrapées dans un bloc catch et traitées. Si une exception personnalisée est lancée, alors sa classe doit être disponible. La fonction __autoload peut par contre être utilisée recursivement pour autocharger la classe d'exception personnalisée.
5.3.0 Ajout de la méthode magique __callStatic.
5.3.0 Ajout : heredoc et nowdoc sont supportées pour définir les constantes de classes et les propriétés. Note: Les valeurs heredoc ne doivent pas contenir de variables.
5.3.0 Ajout du Late Static Bindings (résolution statique tardive).
5.3.0 Ajout de la méthode magique __invoke().
5.2.0 Changement : La méthode magique __toString() n'était appelée que lors des appels à echo ou print. Maintenant, elle l'est dans n'importe quel contexte de chaîne (ex: dans printf() avec %s) mais pas dans les autres contextes (ex: avec le modificateur %d). Depuis PHP 5.2.0, convertir un objet sans méthode__toString en chaîne émet une erreur E_RECOVERABLE_ERROR.
5.1.3 Changement : Dans les versions antérieures de PHP 5, l'utilisation de var était considérée comme obsolète et envoyait une erreur E_STRICT. Ce n'est plus le cas.
5.1.0 Changement : La méthode magique statique __set_state() est maintenant appelée pour les classes exportées via var_export().
5.1.0 Ajout des méthodes magiques __isset() et __unset().

LoadingChargement en cours