par
devlop78 » 13 oct. 2010, 19:43
Ce que je voulais dire stealth35 c'est qu'un constructeur qui n'est pas statique ne peut dans l'optique être appelé vu que l'objet n'est pas créé et que c'est le constructeur qui le créé.
Donc si aucun objet créé mais qu'on veut en créé un il faut forcement appeler une procédure qui doit être accessible sans objet, il serait anti-objet d'en faire une externe à une classe donc il faut une méthode statique à l'intérieur de la classe.
J'ai rien compris. Il est possible que dans certains langages (les mêmes que je peux citer JAVA ou C#), il y ait un constructeur statique et un "normal". On peut aussi considérer, et c'est "logique", que le constructeur statique est tout simplement la lecture par php de l'ensemble de la classe, qui crée ainsi les propriétés et les méthodes. Cependant, le constructeur __construct n'est appelé que lors de l'instanciation de la classe, et après toute définition de propriété et méthodes. Sinon, on ne pourrait pas avoir accès aux propriétés et méthodes avant ... Bref, en dehors du détail extrême entre la définition d'interprétation de code, de chargement de classe, de constructeur statique, de constructeur, et tout, il y a bien une réalité : je ne peux pas mettre :
private $machin = new monObjet();
Tout comme $this se veut très peut flexible (impossible de le transmettre en paramètre, par exemple dans une fonction anonyme).
[quote="xTG"]Ce que je voulais dire stealth35 c'est qu'un constructeur qui n'est pas statique ne peut dans l'optique être appelé vu que l'objet n'est pas créé et que c'est le constructeur qui le créé.
Donc si aucun objet créé mais qu'on veut en créé un il faut forcement appeler une procédure qui doit être accessible sans objet, il serait anti-objet d'en faire une externe à une classe donc il faut une méthode statique à l'intérieur de la classe.[/quote]
J'ai rien compris. Il est possible que dans certains langages (les mêmes que je peux citer JAVA ou C#), il y ait un constructeur statique et un "normal". On peut aussi considérer, et c'est "logique", que le constructeur statique est tout simplement la lecture par php de l'ensemble de la classe, qui crée ainsi les propriétés et les méthodes. Cependant, le constructeur __construct n'est appelé que lors de l'instanciation de la classe, et après toute définition de propriété et méthodes. Sinon, on ne pourrait pas avoir accès aux propriétés et méthodes avant ... Bref, en dehors du détail extrême entre la définition d'interprétation de code, de chargement de classe, de constructeur statique, de constructeur, et tout, il y a bien une réalité : je ne peux pas mettre :
private $machin = new monObjet();
Tout comme $this se veut très peut flexible (impossible de le transmettre en paramètre, par exemple dans une fonction anonyme).