problème de return variable via fonction

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème de return variable via fonction

Re: problème de return variable via fonction

par Ehplod » 14 août 2010, 11:33

Hummm, je vais regarder ça.

Merci.

Re: problème de return variable via fonction

par Lirio » 13 août 2010, 17:49

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

par Ehplod » 13 août 2010, 16:29

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

par Lirio » 13 août 2010, 15:34

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

par Ehplod » 13 août 2010, 15:23

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

par dev3 » 13 août 2010, 14:59

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

problème de return variable via fonction

par Ehplod » 13 août 2010, 14:40

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 :

Code : Tout sélectionner

$aff = testaff(); echo $aff;
function testaff() {
$vartest = "coucou";
return $vartest
}
testaff();
echo $vartest;
function testaff() {
$_SESSION['vartest'] = "coucou";
return $_SESSION['vartest']
}
testaff();
echo $_SESSION['vartest'];