Bonjour à tous (enfin, bonsoir),
Je suis en train d'apprendre la POO avec php. En ce moment, je m'amuse à créer une classe permettant de poster des commentaires sur un site. J'essaye de la faire interagir avec cryptographp, le script bien connu de génération de captcha. J'ai fini par réussir, mais un peu par hasard; je ne suis pas sûr d'avoir compris comment.
Je m'explique: Au début, je cherchais à définir la fonction dans les attributs (pour le cas où l'on veuillent utiliser un autre système de captcha). Je faisais donc un truc du type:
puis dans la méthode d'affichage du formulaire, je faisais naïvement
Code : Sélectionner tout - Visualiser dans une fenêtre à part public $captcha = 'dsp_crypt'; //fonction affichant le captcha![]()
ce qui me donnait un magnifique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $this->captcha(0,1);
Quelle naïveté...Call to undefined method comment::captcha()Bref, après avoir cherché des infos sans succès sur le sujet, j'ai décidé de laisser tomber la variable de fonction et de directement placer dans la méthode le code :
Là ça marche super! Je décide donc de laver mon code, et je supprime de mes paramètres la variable de fonction qui ne sert plus à rien (public $captcha = 'dsp_crypt'; ) Et là? Surprise, ça ne marche plus ! Si je la remet en paramètre, ça remarche...
Code : Sélectionner tout - Visualiser dans une fenêtre à part dsp_crypt(0,1)
Je ne comprends absolument pas ce comportement. J'imagine que je ne m'y prends pas de la bonne façon. Pourriez-vous s'il vous plaît éclairer ma petite personne sur ce grand mystère ?
Pour reformuler la question: Comment fait-on pour appeler une fonction externe à une classe depuis l'une de ses méthodes?
Merki !
Partager