Je viens de tomber sur un bug étrange dans PHP4, et je me questionne. Celui-ci se trouve dans la Programmation Orientée Objet (POO).
J'ai tout simplement deux classes : BiduleNews et BiduleStructuredText. Je crée un objet « $news = new BiduleNews; ». Une fonction de BiduleNews appelle directement une fonction de BiduleStructuredText, comme ça : « $body = BiduleStructuredtext::XHTML( $_POST['body'] ); ».
Jusque là, aucun problème du tout. Sauf que normalement dans la fonction BiduleStructuredText::XHTML() ainsi appelée, je ne dois pas avoir de $this, ce qui est fort normal. D'ailleurs lorsque j'appelle cette fonction directement hors d'une classe, $this n'existe pas. Seulement dans mon cas sus expliqué : ce n'est pas le cas ! Et oui, je me retrouve avec un $this dans BiduleStructuredText::XHTML() ! Un petit coup de « echo get_class( $this ); » m'affiche « BiduleNews » ...
Ainsi $this se passe d'une instance à une autre qui 1- n'a strictement rien à voir ; et 2- qui ne devrait pas en avoir ! Y'aurait pas comme un bug là ?!
# Surprenant...
Posté par spongurex . Évalué à 2.
[^] # Re: Surprenant...
Posté par Pascal Terjan (site web personnel) . Évalué à 2.
[^] # Re: Surprenant...
Posté par spongurex . Évalué à 2.
# Juste une remarque avant de regarder le pb
Posté par Pascal Terjan (site web personnel) . Évalué à 2.
la tu crées 2 objets, = faisant une recopie en PHP4. Met plutôt =&
[^] # Re: Juste une remarque avant de regarder le pb
Posté par Julien Portalier . Évalué à 2.
D'ailleurs dans la doc. de PHP sur les classes, ils utilisent tout le temps = et non =& ... tsss...
# Curieux
Posté par Cali_Mero . Évalué à 2.
Il serait intéressant de vérifier si le fonctionnement est identique sous php5, le modèle objet y ayant été complètement refait.
En tout cas, ouvrir un ticket sur le bugzilla serait, je pense, une bonne idée.
[^] # Re: Curieux
Posté par Pascal Terjan (site web personnel) . Évalué à 2.
[^] # Re: Curieux
Posté par Julien Portalier . Évalué à 2.
N'empêche, c'est bizarre cette fonctionnalité... et je n'arrive pas à trouver d'infos dans la doc. sur cette façon de faire...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.