Bonjour,
J'ai un objet pour lequel je voudrai appeler une de ses méthode en cascade. Pour des raisons de facilité je voudrai déclarer et utiliser des variables a la volée comme en Java, mais je suis confronté au problème suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 class String{ private $chaine; public function __construct(){ if (func_num_args() > 0){$this->chaine = func_get_args()[0];} else $this->chaine = null; } public function get(){ return $this->chaine; } public function concat(String $str){ $this->chaine .= $str->get(); } public function afficher(){ echo($this->chaine); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 //cas ok $titi = new String("titi "); $toto = new String("toto "); $toto->concat($titi); $toto->concat($titi); $toto->afficher(); -> toto titi titi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 //cas ko $toto->concat($titi->concat($titi)); -> Argument 1 passed to String::concat() must be an instance of String, null given, called in
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 //cas ko $toto->concat($titi)->concat($titi); -> Call to a member function concat() on a non-object in ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 //cas ko $titi = new String("titi "); $toto = (new String("toto "))->concat($titi); $toto->afficher(); -> Call to a member function afficher() on a non-object
Auriez vous svp une idee de la cause de mon problème.
Merci d'avance
Partager