Methode d'une classe
developper
-
developper -
developper -
Bonjour,
Je voudrais créé une classe PHP mais j'ai des problemes
je m'explique
je crée une classe et un objet
exemple :
si je fais :
cela me renverra bien "bar"
je souhaiterais appeler les methode a la suite
mais çà ne fonctionne pas et me renvoie une erreur (Fatal error)
pourtant beacuoup l'utilise comme zend par exemple
qu'est ce qui m'échappe?? quelqu'un pourrait m'éclairer ?
merci d'avance
Je voudrais créé une classe PHP mais j'ai des problemes
je m'explique
je crée une classe et un objet
exemple :
class A {
private $foo = null;
function __construct(){
$this->foo = null;
echo 'ici';
}
public function set($val){
$this->foo = $val;
}
public function get(){
return $this->foo;
}
}
si je fais :
$a = new A();
$a->set("bar");
$val = $a->get();
cela me renverra bien "bar"
je souhaiterais appeler les methode a la suite
$get = $a->set("bar")->get();
mais çà ne fonctionne pas et me renvoie une erreur (Fatal error)
pourtant beacuoup l'utilise comme zend par exemple
qu'est ce qui m'échappe?? quelqu'un pourrait m'éclairer ?
merci d'avance
2 réponses
Bonsoir
$a->set("bar")->get() appelle bien set puis get, mais...
set est appelé sur l'objet $a et get est appelé sur $a->set("bar"). Problème : $a->set("bar") ne rend rien, donc n'est pas un objet, et n'a donc pas de méthode get.
Si à la fin de la méthode set, tu ajoutes return this, ça devrait marcher car $a->set("bar") désignerait alors bien un objet. (je n'ai pas essayé)
$a->set("bar")->get() appelle bien set puis get, mais...
set est appelé sur l'objet $a et get est appelé sur $a->set("bar"). Problème : $a->set("bar") ne rend rien, donc n'est pas un objet, et n'a donc pas de méthode get.
Si à la fin de la méthode set, tu ajoutes return this, ça devrait marcher car $a->set("bar") désignerait alors bien un objet. (je n'ai pas essayé)