Comment passer un tableau à une fonction, et de retourner les résultats avec un tableau
Donc je suis en train d'apprendre à passer des tableaux au travers d'une fonction, de sorte que je peux obtenir autour de PHP est l'incapacité de retourner plusieurs valeurs. N'ont pas été en mesure d'obtenir quoi que ce soit au travail, mais voici mon mieux essayer. Quelqu'un peut-il point où je vais mal?
function foo($array)
{
$array[3]=$array[0]+$array[1]+$array[2];
return $array;
}
$waffles[0]=1;
$waffles[1]=2;
$waffles[2]=3;
foo($waffles);
echo $waffles[3];
Pour la clarification: je veux être en mesure de passer plusieurs variables dans une fonction, de faire quelque chose, puis retourner plusieurs variables arrière tout en les gardant séparés. C'était juste un exemple, j'ai été d'essayer de faire fonctionner comme n'étant pas en mesure de retourner plusieurs variables à partir d'un tableau
- Par ailleurs, la raison c'est espacés tous drôle, c'est parce que c'était la seule façon que je pouvais le garder de l'agglutination tout sur une seule ligne :-/
- vous pouvez utiliser le bouton "code" sur l'éditeur.
- Essayez d'utiliser le "code échantillon" bouton...il y a un tas de 0 et de 1 sur elle...comme le code 😉
- la pensée que j'ai fait. Probablement de ma faute
- Pour le bien de la postérité, ce que j'essayais de faire avec ce problème a été de modifier un tableau en utilisant une fonction. Ce que j'ai eu du mal à saisir à l'époque n'était pas le passage par référence autant que ce que signifie pour une fonction à
return
une valeur, et ce qui s'est passé avec la valeur retournée.
Vous devez vous connecter pour publier un commentaire.
Vous semblent être à la recherche pour le passage par référence, à faire faire à votre fonction regarder de cette façon (note de l'esperluette):
Alternativement, vous pouvez affecter la valeur de retour de la fonction à une variable:
Vous êtes de passage le tableau dans la fonction de copie. Seuls les objets sont passés par référence dans le PHP, et un tableau n'est pas un objet. Voici ce que vous faites (notez le &)
Cela de côté, je ne suis pas sûr de savoir pourquoi vous faites cette opération comme ça. Pourquoi ne pas simplement retourner la somme au lieu de l'affecter à un nouvel élément de tableau?
Essayer
Ou passer le tableau par référence, comme suggéré dans les autres réponses.
En outre, vous pouvez ajouter de nouveaux éléments à un tableau sans avoir à écrire de l'index, par exemple
ou
Sur un passage, si vous souhaitez calculer la somme de toutes les valeurs dans un tableau, utilisez
array_sum()
J'ai toujours retourner plusieurs valeurs à l'aide d'une combinaison de
list()
etarray()
s:Vous pouvez les nommer ce que vous voulez. J'ai choisi de garder la fonction de variables et le retour des variables de même pour la cohérence, mais vous pouvez l'appeler ce que vous voulez.
Voir
list()
pour plus d'informations.je sais une Classe est un peu de l'overkill
Voici comment je le fais. De cette façon, je peux réellement obtenir une fonction pour simuler retourner plusieurs valeurs;
Particulièrement utile si vous souhaitez, par exemple tous les champs dans une base de données
être retournés comme des variables portant le même nom que la table de base de données champs.
Voir " db_fields ( ) la fonction ci-dessous.
Par exemple, si vous avez une requête
Retours de fonction de plusieurs variables:
Voici la fonction:
Ci-dessous est un exemple d'appel de fonction. Donc, Si nous avons besoin d'obtenir des Données Utilisateur pour dire $user_id = 12345, les membres de la table avec les champs ID, LOGIN, MOT de passe, e-MAIL:
Nous pourrions aussi appeler comme ceci:
L'appel ci-dessus, vous obtiendrez tous les champs comme noms de variable.
Vous n'êtes pas en mesure de retourner les multiples valeurs " en PHP. Vous pouvez retourner une seule valeur, ce qui pourrait être un tableau.
foo()
appelégiveme()
?Une autre façon est: