Modifications en POO (Programmation orientée objet)
Les changements du modèle objet de PHP sont recensés ici. Plus d'informations et autres notes peuvent être trouvées dans la documentation sur la POO en PHP.
Version | Description |
---|---|
7.4.0 | Changement : Il est désormais possible de lancer des exceptions au sein de __toString(). |
7.4.0 | Ajout : Support limité pour la covariance du type de retour et contravariance pour le type d'argument. Support complet de variance est uniquement disponible si l'autochargement est utilisé. À l'intérieur d'un fichier unique seul les références non-cyclique de type sont possible. |
7.4.0 | Ajout : Il est désormais possible de typer les propriétés de classe. |
7.3.0 | Incompatibilité : Le déballage d'argument de Traversables avec des clés non-entieres n'est plus supporté. Ce comportement n'était pas prévu et par conséquent supprimé. |
7.3.0 | Incompatibilité : Dans les versions précedentes il était possible de séparer les propriétes statiques en assignant une référence. Ceci a été supprimé. |
7.3.0 |
Changement : L'opérateur
instanceof autorise désormais des litéraux comme premier
opérande, dans ce cas le résultat est toujours FALSE .
|
7.2.0 | Obsolète : La méthode __autoload() a été rendu obsolète en faveur de spl_autoload_register(). |
7.2.0 | Changement : Le nom suivant ne peut pas être utilisé pour nommer des classes, interfaces ou traits : object. |
7.2.0 | Changement : Une virgule trainnant peut désormais être ajouté à la syntaxe use groupé pour les espaces de noms. |
7.2.0 | Changement : Élargissement du type des paramètres. Le type des paramètres des méthodes réécrite et d'implémentation d'interface peuvent désormais être omit. |
7.2.0 | Changement : Les méthodes abstraites peuvent désormais être réécrite quand une classe abstraite étend une autre classe abstraite. |
7.1.0 | Changement : Les noms suivant ne peuvent pas être utilisé pour nommer des classes, interfaces ou traits : void et iterable. |
7.1.0 | Ajout : Il est désormais possible de définir la visibilité des constantes de classe. |
7.0.0 | Obsolète : Appel statique à des méthodes qui ne sont pas déclarées comme statique. |
7.0.0 | Obsolète : Constructeur style PHP 4. C.à.d. les méthodes qui ont le même nom que la classe dans laquelle elles sont définies. |
7.0.0 | Ajout : Déclaration use groupé : les classes, fonctions et constantes qui sont importer depuis un même espace de nom peuvent désormais être groupé ensemble en une seule déclaration use. |
7.0.0 | Ajout : Support pour les classes anonymes a été ajouté grâce à new class. |
7.0.0 | Incompatibilité : Itérer sur un objet non- Traversable aura désormais le même comportement qu'itérer sur les tableaux par référence. |
7.0.0 | Changement : La définition de propriétés (compatibles) dans deux traits utilisés ne déclenche plus d'erreur. |
5.6.0 | Ajout : La methode __debugInfo(). |
5.5.0 | Ajout : La constante magique ::class. |
5.5.0 | Ajout : finally pour gérer les exceptions. |
5.4.0 | Ajout : traits. |
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 le dernier élément dans un espace de noms ne sont plus considérées comme un 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 désormais possible de référencer une classe en utilisant une variable (e.g. : echo $classname::constant;). La valeur de la variable ne peut être un mot-clé (e.g. : self, parent ou static). |
5.3.0 |
Changement : Une erreur de niveau E_WARNING est
émise si les méthodes magiques de
surcharge sont
déclarées comme statiques.
La visibilité publique est aussi requise.
|
5.3.0 | Changement : Antérieur à 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 lancé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 être utilisée recursivement pour autocharger la classe d'exception personnalisée. |
5.3.0 | Ajout : La méthode __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 doivent suivre les mêmes règles que les chaîne de caractères entouré de guillemet double (e.g. pas de variable au sein). |
5.3.0 | Ajout : Résolution Statique Tardive. |
5.3.0 | Ajout : La méthode __invoke(). |
5.2.0 |
Changement : La méthode __toString()
n'était appelée que lors des appels à echo ou
print.
Désormais, elle est appellée dans n'importe quel contexte de chaîne de caractères
(e.g. dans printf() avec le modificateur
%s) mais pas dans les autres contextes (e.g. avec
le modificateur %d).
À partir de PHP 5.2.0, convertir un objet sans méthode
__toString en chaîne de caractères
é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 émettait une
erreur E_STRICT . Ce n'est plus le cas.
|
5.1.0 | Changement : La méthode statique __set_state() est désormais appelée pour les classes exportées via var_export(). |
5.1.0 | Ajout : Des méthodes __isset() et __unset(). |
Version en cache
27/12/2024 20:40:07 Cette version de la page est en cache (à la date du 27/12/2024 20:40:07) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-language.oop5.changelog.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.