Page 1 sur 1
problème de return variable via fonction
Posté : 13 août 2010, 14:40
par Ehplod
Salut,
Ma question du jour concerne le renvoi de variable via une fonction.
Le 1 ne fonctionne pas, le echo n'affiche rien.
Le 2 fonctionne echo affiche "coucou".
Pourquoi ?
Je précise que cela fonctionne dans le cas 1 si j'appelle la fonction ainsi :
function testaff() {
$vartest = "coucou";
return $vartest
}
testaff();
echo $vartest;
function testaff() {
$_SESSION['vartest'] = "coucou";
return $_SESSION['vartest']
}
testaff();
echo $_SESSION['vartest'];
Re: problème de return variable via fonction
Posté : 13 août 2010, 14:59
par dev3
Bonjour,
C'est lié à la
portée d'une variable, dans ton exemple 1
$vartest
est une variable locale à la fonction
testaff()
elle est donc inaccessible à l'exterieur de ta fonction
->
http://www.manuelphp.com/php/language.v ... .scope.php
Re: problème de return variable via fonction
Posté : 13 août 2010, 15:23
par Ehplod
Ah ouais...
Donc en la définissant comme global dans la fonction, je devrais la retrouver ensuite sans être obliger de la passer en variable de session.
Merci
Re: problème de return variable via fonction
Posté : 13 août 2010, 15:34
par Lirio
Oui .. sachant que les globals sont globalement à proscrire ^^
Pourquoi ne pas faire tout simplement
function testaff()
{
return "coucou";
}
$vartest = testaff();
echo $vartest;
Re: problème de return variable via fonction
Posté : 13 août 2010, 16:29
par Ehplod
Ah ?
Pourquoi sont-elle à proscrire ? Juste pour le risque de modifier ailleurs la variable mis en global ?
Dans ce cas, pas de soucis, aucune de mes variable n'a jamais le même nom.
Et le fait que je n'appelle pas ma fonction via variable = fonction est juste pour des raisons pratiques.
Re: problème de return variable via fonction
Posté : 13 août 2010, 17:49
par Lirio
Pourquoi ne pas utiliser les globals ?
Parce que ça créer des dépendances monstrueuses, qui sont généralement difficilement repérable dans les scripts.
Parce que l'on a finalement assez peu de contrôle dessus.
Généralement, on préfère l'utilisation de registre (cf
Hoa Registry ou
Zend Registry ) ou encore l'injection de dépendance.
Re: problème de return variable via fonction
Posté : 14 août 2010, 11:33
par Ehplod
Hummm, je vais regarder ça.
Merci.