par
Cyrano » 15 mai 2007, 19:40
Pas que ta question soit inintéressante, mais personne n'est passé pouvant te répondre jusqu'à maintenant.
Pour ma part, j'évite toujours de lancer un quelconque affichage directement depuis une fonction. Deux raison à ça : tu as mentionné la première (séparer l'affichage du traitement), et la seconde, c'est que ça bloque l'utilisation de ma fonction. Si je veux l'utiliser ailleurs, je ne pourrai pas modifier l'affichage.
Donc il vaut mieux privilégier le retour de la fonction sous forme de variable scalaire ou tabulaire (une simple valeur ou un tableau indexé/associatif)
Dans l'exemple que tu montres, ça donnerait un tableau puisque tu as plusieurs valeurs à renvoyer. Ça va donner à peu près ceci :
<?php
function affiche ()
{
/* On définit une valeur par défaut à notre retour */
$infos = false;
while (false != ($user=mysql_fetch_assoc($this->sql1)))
{
$this->id_user = $user['id_user'];
$this->login = $user['login'];
$this->mail = $user['mail'];
$this->droit = $user['droit'];
$this->inscript = $user['inscript'];
$infos = array(
'login' => $this->login,
'droit' => $this->droit,
'inscrit' => $this->inscript,
'mail' => $this->mail
);
}
return $infos;
}
/* Affichage : on récupère d'abord les données */
$infosmembre = affiche();
if(false != $infosmembre)
{
echo "<br /> login : ". $infosmembre['login'];
echo " droit : ".$infosmembre['droit']." Son email : ".$infosmembre['mail'];
echo "<br />Inscipt le : ".$infosmembre['inscrit'];
}
?>
Pas que ta question soit inintéressante, mais personne n'est passé pouvant te répondre jusqu'à maintenant.
Pour ma part, j'évite toujours de lancer un quelconque affichage directement depuis une fonction. Deux raison à ça : tu as mentionné la première (séparer l'affichage du traitement), et la seconde, c'est que ça bloque l'utilisation de ma fonction. Si je veux l'utiliser ailleurs, je ne pourrai pas modifier l'affichage.
Donc il vaut mieux privilégier le retour de la fonction sous forme de variable scalaire ou tabulaire (une simple valeur ou un tableau indexé/associatif)
Dans l'exemple que tu montres, ça donnerait un tableau puisque tu as plusieurs valeurs à renvoyer. Ça va donner à peu près ceci :
[php]<?php
function affiche ()
{
/* On définit une valeur par défaut à notre retour */
$infos = false;
while (false != ($user=mysql_fetch_assoc($this->sql1)))
{
$this->id_user = $user['id_user'];
$this->login = $user['login'];
$this->mail = $user['mail'];
$this->droit = $user['droit'];
$this->inscript = $user['inscript'];
$infos = array(
'login' => $this->login,
'droit' => $this->droit,
'inscrit' => $this->inscript,
'mail' => $this->mail
);
}
return $infos;
}
/* Affichage : on récupère d'abord les données */
$infosmembre = affiche();
if(false != $infosmembre)
{
echo "<br /> login : ". $infosmembre['login'];
echo " droit : ".$infosmembre['droit']." Son email : ".$infosmembre['mail'];
echo "<br />Inscipt le : ".$infosmembre['inscrit'];
}
?>[/php]