Comment devrais-je retourner plusieurs variables dans une fonction (pour les meilleures pratiques)?
Simplement curieux de savoir quelle est la meilleure pratique serait quelque chose comme ceci:
Une fonction, qui renvoie à plusieurs variables - comment doit-on le retour de ces variables?
comme ceci (mondialisation):
function myfun(){
global $var1,$var2,$var3;
$var1="foo";
$var2="foo";
$var3="foo";
}//end of function
ou comme ceci (renvoyant un tableau):
function myfun(){
$var1="foo";
$var2="foo";
$var3="foo";
$ret_var=array("var1"=>$var1,"var2"=>$var2,"var3"=>$var3);
return $ret_var;
}//end of function
J'ai fait un test de performance, et il semble que l'utilisation des tableaux est plus rapide (après quelques actualise):
array took: 5.9999999999505E-6
global took: 2.0999999999938E-5
Mais je suis curieux de savoir quelle méthode est la mieux pratiqué pour un cas simple comme celui-ci?
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Vous devez absolument retourner un tableau. Il est beaucoup plus claire. Vous pouvez même utiliser le
list
construire pour simuler plusieurs valeurs de retour à la python:Edit: dans certains cas, un tableau associatif est également tout à fait approprié. Je ne peux pas imaginer la différence de performance mérite cette perte de clarté.
Utiliser des références (si cela fait sens) http://de.php.net/manual/en/language.references.php
Exemple:
Ou de retourner un tableau.
ET NE JAMAIS UTILISER DE VARIABLES GLOBALES! Il est très mauvais design et pas facile à gérer.
Le tableau associatif est la meilleure option à partir d'un code de point de vue entretien, puisque vous n'êtes pas de déblayage l'espace de noms global. Sera également plus facile pour les autres de lire votre code.
Vous pouviez retourner un Tableau et utiliser la liste pour obtenir les valeurs, voir http://www.php.net/manual/en/function.list.php
Fonctionne pour moi, je ne sais pas à quelle vitesse c'est bien, mais peut-être qu'il ressemble plus propre dans votre code.
Vous pouvez utiliser la classe http://php.net/manual/en/keyword.class.php.
Depuis ce rang si élevé sur Google et sur le fait qu'il m'a fallu du temps pour trouver une réponse claire moi-même à quelque chose d'aussi simple...
Pour donner une réponse complète et approfondie, et de préciser comment retourner plusieurs variables que vous pouvez réellement utiliser de façon autonome à l'extérieur de votre fonction:
Si vous êtes à l'aide de résultats de requête de base de données à l'intérieur de votre fonction plus que probable que vous aurez besoin de passer votre connexion variable dans la fonction. Par exemple, nous allons dire que $db est notre connexion de base de données et vous serait tout simplement de modifier les deux lignes de code ci-dessous: