Puis afficher une seule variable à l'intérieur d'une fonction ?

WRInaute occasionnel
Bonjour,

Je me pose la question suivante : J'ai une fonction qui affiche 3 variables. Lorsque j'appelle la fonction, les 3 variables s'affichent. Ok.

Maintenant si à un endroit dans la page, je ne veux afficher qu'une seule de ces 3 variables, est-ce possible ?
Ou alors, dois-je créer une fonction spécifique pour chaque variable que je veux afficher indépendamment des autres ?

Par exemple :
Code:
public function afficher() 
{
echo $this->_titre;
echo $this->_motClef;
echo $this->_contenu;
}

$def = new Definition();
$def->afficher();
Ceci va afficher la valeur des variables $titre, $motClef et $contenu.
Mais si à un endroit de la page, je ne veux afficher que $contenu, est-ce possible ? Ou suis-je obligé de créer une fonction spécifique qui ne va afficher que cette variable ?


Merci d'avance pour vos réponses :!:
 
WRInaute impliqué
soit tu crées une autre fonction, soit tu ajoutes des paramètres à la fonction pour ne pas tout afficher quand les paramètres n'ont pas leur valeur par défaut.
 
WRInaute impliqué
Ici, ce ne sont pas des fonctions mais des méthodes de classes.
Je te dirais que le mieux est de faire des accesseurs.
Exemple :
PHP:
<span class="syntaxdefault"><br />public function getTitre</span><span class="syntaxkeyword">()<br />{<br /></span><span class="syntaxdefault">    return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">_titre</span><span class="syntaxkeyword">;<br />}<br /><br /></span><span class="syntaxdefault">$def </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new Definition</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">echo $def</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">getTitre</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault"></span>
 
WRInaute occasionnel
Bonjour à vous,

Que dire, sinon merci pour vos réponses, simples et concises.
Bon, pas possible de récupérer une seule variable donc, je prends note.

Accesseur, accesseur... Ok ok... Mais ton compte n'est pas très différent du miens, Blount. Alors pourquoi le désigner autrement ?
Puis y'a quand même écrit public function, alors dire que "c'est pas une fonction"...

Non je sais, je chipote... Mais je n'ai encore jamais utilisé les fonctions et la POO, je m'étais contenté d'un site vaste mais simple, en empilant des requêtes sql et des boucles while re-repétées partout dans le code...
 
WRInaute accro
Alorsladaccord a dit:
pourquoi le désigner autrement ?
Puis y'a quand même écrit public function, alors dire que "c'est pas une fonction"...
Car dans un objet (correction > une classe) on appel ça une méthode.
 
WRInaute accro
En fait, la question n'est pas "POO ou pas", mais la façon de structurer son code.

En reprenant ton exemple de "boucles while re répétées dans le code", il suffit dans ce cas de faire une fonction qui :

1- récupère les résultats d'une requête faite ailleurs
2- les parcourt, éventuellement avec des options pour des formatages différents
3- retourne un résultat, qui pourra être ensuite affiché

Que tu fasses cela en procédural, avec des fonctions, ou en orienté objet, avec des classes et des méthodes, le résultat est le même.
 
WRInaute occasionnel
Vouaip,

Non mais faut que j'apprenne l'Objet de toute façon, c'est intéressant comme manière de programmer. CA fait un chouette complément intellectuel avec les bases de données.

Bien, bah, merci encore pour vos réponses, comme toujours.

Et bonne journée :)
 
WRInaute occasionnel
zeb a dit:
Alorsladaccord a dit:
pourquoi le désigner autrement ?
Puis y'a quand même écrit public function, alors dire que "c'est pas une fonction"...
Car dans un objet (correction > une classe) on appel ça une méthode.

Tiens, une question vite fait : une fonction à l'intérieur d'une classe est une méthode. Bon.
Lorsque je crée un objet, je peux lui appliquer une méthode de la classe dont il est issu. Bon.

Mais puis-je appliquer à cet objet, une fonction extérieure à sa classe ? Si oui et si ce n'est pas trop long, à quoi ressemble la formule ?

Merci d'avance.
 
WRInaute occasionnel
Salut zeb,


Ce n'est pas le fonction qui est un paramètre de l'objet, plutôt ? Dans la fonction, on passe des variables en paramètre, mais pas tout un objet. Ce sont les variables de l'objet qui sont paramétrées par les fonctions.
 
WRInaute accro
Alorsladaccord a dit:
Ce n'est pas le fonction qui est un paramètre de l'objet, plutôt ?
Non, jamais. Une fonction peut être appliquée à un objet, ça s'appelle une méthode

Alorsladaccord a dit:
Dans la fonction, on passe des variables en paramètre, mais pas tout un objet.
On peut, si

Alorsladaccord a dit:
Ce sont les variables de l'objet qui sont paramétrées par les fonctions.
Cette phrase de veut rien dire "informatiquement". Ce sont les propriétés de l'objet qui sont manipulées par les méthodes.
 
WRInaute accro
Alorsladaccord a dit:
la fonction s'applique à toutes les variables de l'objet ?
A toutes les propriétés de l'objet, non, c'est toi qui décide dans ta fonction ce que tu souhaite faire.
Le fait de passer un objet en paramètre d'une fonction n'implique pas d'appliquer une traitement ou un autre, c'est toi qui décide et bien sur le traitement appliqué doit correspondre au type de données que ton objet contiens.
 
WRInaute accro
Il est souvent plus pratique de charger un objet au départ, dans une fonction complexe, et ensuite de sélectionner les propriétés (pas les variables, utilise le bon vocabulaire si tu veux comprendre les tutos et être compris sur les forums) qu'on veut modifier / utiliser. C'est meilleur en terme de perf que de faire plusieurs appel pour charger chaque information séparément
 
Discussions similaires
Haut