salut
est ce qu'un constructeur peut retourner une valeur ?
Code:
1
2
3
4
5
6
7
8
9
10
11
12 class A { var $nom function A($inputName){ $this->nom=$inputName; return $this->nom; // ou return 50 // ou return "text"; } } $X=new A("Rasmus");
?
Version imprimable
salut
est ce qu'un constructeur peut retourner une valeur ?
Code:
1
2
3
4
5
6
7
8
9
10
11
12 class A { var $nom function A($inputName){ $this->nom=$inputName; return $this->nom; // ou return 50 // ou return "text"; } } $X=new A("Rasmus");
?
Salut, et non ;)
Par définition, un constructeur ne peut rien retourner (ou plutot il retourne toujours l'instance crée).
Ca me parait plutot logique, donc je ne vois pas bien comment tu voudrais te servir d'une valeur de retour d'un constructeur, car dans ce cas comment accedes tu à l'objet que tu viens de créer ?
la solution que tu peux utiliser c'est déclarer ton constructeur en privé et créer une fonction (type ::New ) publique et statique qui lance ton constructeur et comme çà tu pourra retourner ce que tu veux ;)
Code:
1
2
3
4
5
6
7
8
9
10
11
12 class A{ private : A(); public : static void New( A & a , TYPE & valeur ); }; void New( A & a , TYPE & valeur ){ a = new A(); valeur = toto; }
Et dire que c'est du php ca 8O
Me reste encore a apprendre ?
I'mmmmm goinnng to goooogleeee....
Salut,Citation:
Envoyé par php4life
J'aurais juste une question : pourquoi faire ?
Eviter une ligne de code ?
Ce ne sera pas forcément plus clair...
C'est lisible, simple et court à coder.Code:
1
2
3
4
5 <?php $machin = new Truc(); if (isset($machin->nom)) { ... } ?>
Pourquoi vouloir faire moins ? Un concours de one-liner ?
Salut tlm!
:aie: oui j'avais bien deviner comme me l'as indiquer Taum qui ca retourne l'instance et rien d'autre
pour galak63 , j'arrive pas a sortir du PHP4 :oops: , donc j'ai pas tout compris de ton code :?
j'ai lu qlq tuto OOP PHP5 et ca me parait plus "Orienté Objets" que php4 :mrgreen:
merci a vous tous !
Ps: xaaros héhé t'inquiéte on arrête jamais d'apprendre .. :)
Le code que t'a donné galak63 c'est absolument pas du PHP:roll:
Tu peux procéder comme ceci :
(en gros tu mets la valeur que tu veux dans une des propriété de la classe).Code:
1
2
3
4
5
6
7
8
9
10
11
12 class A { var $nom; var $return; function A($inputName){ $this->nom=$inputName; $this->return = $this->nom; } } $X=new A("Rasmus"); echo $X->return;
Le constructeur sert à initialiser les données, lui faire retourner une valeur n'aurait de toute façon pas de sens.
Ouai peut etre, mais c'était pour le concept (en gros la je suis sur du C++ et je m'emmelle les pinceaux des fois ...) ;)Citation:
Envoyé par genova