Page 1 sur 1

Affichage d'une seule valeur ?

Posté : 02 sept. 2010, 11:28
par albius
Bonjour,

Dans l'apprentissage de la POO, j'écris une classe basique pour mieux en appréhender les principes et fonctionnements:
class personne {
 
    private $_nom;
    private $_job;
    private $_age;
 
    function __construct($nom, $job, $age) {
        $this->_nom = $nom;
        $this->_job = $job;
        $this->_age = $age;
    }
 
    public function getPersonne() {
        return $this->_nom;
        return $this->_job;
        return $this->_age;
    }
}
Dans un autre fichier:
$personne1 = new personne('yann', 'info', 36);
echo $personne1->getPersonne();
Et là, je n'ai que 'yann' qui s'affiche. Pourquoi ?
merci,

Re: Affichage d'une seule valeur ?

Posté : 02 sept. 2010, 12:06
par stealth35
y'a que le 1er return rencontrer qui retourne quelque chose, mais même dans la logique çà va pas tu t'attendait a quoi comme valeur de retour avec ton echo ? :wink:

Re: Affichage d'une seule valeur ?

Posté : 02 sept. 2010, 12:25
par albius
Je viens d'avoir la réponse sur un autre forum. return termine la fonction, en renvoyant une valeur. C'est pour cela que je ne pouvais voir les autres valeurs.
Il faudrait que j'écrive :
public function getPersonne() {
        return $this->_nom.' / '.$this->_job.' / '.$this->_age;
 } 
Merci pour la réponse,

Re: Affichage d'une seule valeur ?

Posté : 26 sept. 2010, 08:00
par datesta
Si j'ai bien compris ta classe n'est là que pour déclarer une personne donc le "getPersonne" est un peu inutile.

Tu peux donc surcharger __toString comme ça tu n'as pas besoin de la fonction getPersonne pour afficher les informations d'une personne.
function __toString() {
    return $this->_nom.' / '.$this->_job.' / '.$this->_age;
}
exemple d'utilisation :
$personne1 = new personne('yann', 'info', 36);
echo $personne1;