Methode d'une classe

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 :
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

Utilisateur anonyme
 
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é)
3
developper
 
Bonjour et merci le père

c'est exactement çà qu'il manquait

 return $this;
0