Lorsque j'appelle self::$parameter = 1;
, le __set
n'est pas appelé.Comment faire pour que __set fonctionne aussi pour une opération statique en PHP?
Existe-t-il un moyen de contourner ce problème?
Lorsque j'appelle self::$parameter = 1;
, le __set
n'est pas appelé.Comment faire pour que __set fonctionne aussi pour une opération statique en PHP?
Existe-t-il un moyen de contourner ce problème?
De l'manual:
Propriété surcharge ne fonctionne que dans le contexte de l'objet. Ces méthodes magiques ne seront pas déclenchées dans un contexte statique. Par conséquent, ces méthodes ne doivent pas être déclarées statiques. Depuis PHP 5.3.0, un avertissement est émis si l'une des méthodes de surcharge magique est déclarée statique.
Donc, je ne crains pas.
Pensez-vous que c'est raisonnable? – user198729
@user Disons que je ne suis pas tombé sur une situation où j'aurais eu besoin de cette fonctionnalité, alors ça ne me dérange pas non plus. C'est certainement * une * caractéristique manquante, et il est étrange qu'il y ait une fonction '__callStatic' mais pas de fonction' __setStatic'. Il va juste montrer une fois de plus que OO était une réflexion après coup en PHP. En fait, le PHP moderne était une réflexion après coup en PHP. ;) – deceze
^^^ haha ça, ouais je pense aussi que c'était un après-coup, 1000x ça .... –