tuto wordpress
- Migration tout-en-un WP – un moyen facile de changer d'hôtes
- Traitement du langage naturel avec le package NLTK de Python – Real Python
- Utilisation de la fonction zip () Python pour une itération parallèle – Real Python
- Guide des permaliens WordPress pour améliorer la structure du site
- Les 4 meilleurs hôtes cloud pour WordPress: une critique honnête
L’une des fonctions les plus utilisées dans ma vie avec PHP est pour chaque
. En partie, c’est parce qu’il s’agit d’une fonction nommée de façon exquise, et que cela correspond bien à ma pensée. Cela tient en partie au fait qu’il s’agit en quelque sorte de l’épine dorsale d’une page Web: il permet de parcourir plusieurs éléments, d’opérer de manière sélective, puis de les afficher tous.
Pour être bon en PHP, il faut vraiment savoir pour chaque
. C’est notre objectif: couvrir les aspects les plus courants et les plus utiles de pour chaque
d'une manière que nous espérons, il est facile pour vous de comprendre. Nous aborderons également quelques-uns des aspects les plus complexes de cette construction de langage PHP, mais dans le but de nous en tenir aux choses que nous écrivons régulièrement ou que nous rencontrons dans le code d’autres personnes.
Foreach vs For Loop: PHP Looping
Quiconque a beaucoup programmé dans n'importe quelle langue a entendu parler d'un pour
boucle. PHP améliore la pour
boucle avec le pour chaque
boucle. Mais avant de trop nous enfoncer dans le pour chaque
Je pense qu’il est utile de comprendre en quoi ces deux choses populaires diffèrent.
En PHP, vous utiliserez un pour
boucle principalement lorsque vous voulez parcourir un ensemble de nombres. Supposons que vous souhaitiez qu'un segment de code soit exécuté 20 fois. Vous allez probablement utiliser un pour
boucle, comme ceci:
pour ($ x = 1; $ x <= 20; $ x ++)
echo "Le nombre est: $ x
";
Ce qui est génial avec ce code, c’est que si vous avez vu un pour
boucle avant (avec sa bizarre syntaxe à trois clauses de «condition de départ», «condition continue», «opération par boucle»), cela se lit tout simplement. Si vous n’avez jamais vu cette syntaxe auparavant, c’est beaucoup de choses à dire.
J'ai toujours trouvé PHP pour chaque
les boucles beaucoup plus simples à comprendre. Plutôt que de passer par une séquence abstraite, vous parcourez une chose prédéfinie. Voici notre pour
boucle, faite dans une simple foreach.
$ numbers = array (1, 2, 3, [...]19, 20);
foreach ($ nombres sous forme de $ x)
echo "Le nombre est: $ x
";
J'ai donc une liste de nombres (en PHP, on utilise le tableau
construction de langage pour contenir et identifier une liste), et à chaque itération, nous voyons un numéro, que nous nous montrons à nous-mêmes via un écho
commander.
Foreach PHP: Sémantique et exemples de code
Généralement, je pense à la syntaxe de foreaching une liste en PHP comme ceci:
foreach ($ from_list en tant que $ list_member)
// utilise $ list_member pour faire des choses
Presque toujours, voici comment une foreach en PHP fonctionnera. Vous aurez un ensemble préexistant, le plus souvent un tableau
et vous le parcourrez en faisant des choses spécifiques avec chaque élément.
Une opération courante que vous ferez en PHP est filtre
à travers un tableau. Pour cela, nous allons lancer foreach item dans un tableau comme ceci, en ne conservant que les nombres impairs:
$ keep_odds = array (); // commence par un tableau vide de nombres impairs
$ nombres = tableau (1, 2, 3, ..., 19, 20);
foreach ($ nombres sous forme de $ x)
si ($ x% 2 == 1)
$ keep_odds[] = $ x;
Maintenant, certaines de ces choses étaient nouvelles. Une partie sur laquelle vous devriez peut-être simplement me faire confiance: dans le si
J'ai utilisé une syntaxe étrange. Cela nous dit que les choses sont bizarres par rapport aux paires. (C’est l’opérateur modulo de PHP, que j’ai expliqué dans cet article et qui explique en quoi il est utile pour trouver plus que des nombres impairs.)
L'autre chose à comprendre est la ligne $ keep_odds[] = $ x
. Cette syntaxe peut être nouvelle pour vous et mérite d'être comprise. Ce qu’il fait est d’ajouter l’article $ x
à la fin de la liste (ou tableau) $ keep_odds
. C’est ce que le $ tableau[]
la syntaxe signifie: "ajoutez à la fin du tableau la valeur …" beaucoup autour de PHP pour chaque boucle, car cela correspond bien à notre façon de penser: ajouter quelque chose à ce nouvel ensemble.
PHP Foreach: Obtenir la clé et la valeur
La prochaine grande chose à faire est d’utiliser le clés
de votre tableau PHP. Pour la plupart des applications de type "liste", vous pouvez simplement utiliser les tableaux PHP en tant que listes. Mais parfois, nous utilisons les tableaux PHP comme «paires clé-valeur». Dans ce cas, vous pouvez utiliser un moyen légèrement plus long d’écrire une boucle PHP foreach:
foreach ($ array as $ key => $ value)
# code ...
En supposant que vous utilisiez une liste sous forme de liste, les valeurs à attendre clé $
0, 1, 2, etc. dans le code ci-dessus (si vous n’êtes pas familier, PHP et de nombreux autres langages de programmation commencent à compter les éléments à 0 plutôt qu’à 1. C’est surtout une folie insignifiante, mais a pour origine des optimisations très précoces des performances de l'ordinateur.)
Si vous avez un tableau d’objets, même avec des clés personnalisées, c’est le as $ key => $ valeur
dans la déclaration de boucle foreach qui est si importante. (Et juste pour que vous sachiez, ces noms ne sont pas corrigés. Vous pouvez plutôt mettre dans votre pour chaque
boucle les noms de, disons $ index
et $ object
si ce sont comment vous pensez si votre foreach clé
et valeur
. Utiliser des noms plus précis n’est pas seulement possible, mais encouragé.)
Tableau multidimensionnel PHP Foreach
Au hasard, beaucoup de gens vont parler de «tableaux multidimensionnels» en PHP. Ce nom ne m'a jamais vraiment cliqué, mais généralement, lorsque les gens le disent, ils veulent dire qu'ils ont «un tableau de tableaux». Pour vous donner un sens plus visuel, nous pourrions avoir une structure de données comme celle-ci:
$ indexed_pairs = [
'david' => [32, 487],
'fred' => [33, 792],
]
J'appellerais cela un «tableau de tableaux indexé par nom». Mais c'est assez verbeux. L’important pour nous ici est de pouvoir parcourir ce tableau comme d'habitude. Foreach en PHP n'a aucun problème à travailler avec des tableaux multidimensionnels. Donc, pour parcourir notre simple tableau multidimensionnel, vous ferez:
foreach ($ indexed_pairs en tant que $ name => $ pair)
echo $ name. ' est '. $ paire[0]' ans';
Dans ce cas, nous utilisons la structure du tableau pour contenir plus d’informations qu’une simple liste ou un ensemble de paires clé-valeur. De ce fait, nous sommes en mesure de montrer les deux informations. Comme cette seconde moitié mystérieuse de la paire. (C’est en fait un nombre aléatoire dont je ne connais pas la signification.)
Comprendre les raccourcis dans une boucle Foreach
Par défaut, une boucle PHP foreach se déplacera bêtement dans tous les éléments de votre tableau (ou autre Itérateur
implémentation d'objet, mais nous allons sauter la discussion à ce sujet pour l'instant). Ainsi, si vous avez deux éléments dans votre tableau, comme nous l’avons fait ci-dessus, vous verrez juste les deux éléments parcourir le tableau. Mais dans les cas où vous avez des centaines ou des milliers d’articles dans votre tableau, il est assez courant de vouloir faire autre chose que de les parcourir tous. Après tout, les visiteurs de votre site sont occupés.
Dans ces cas, il est important de savoir que vous pouvez effectuer des optimisations assez simples dans vos boucles foreach PHP afin de faire bouger plus rapidement votre fonction ou votre script. Elles sont Pause
et Continuez
. Je suis parfois dérouté par les deux à propos de leur utilisation dans PHP pour chaque boucle à ce jour, alors continuons de les décomposer. (Voir ce que j'ai fait là-bas? 🤪)
Qu'est-ce qu'un PHP Continuez
dans une boucle foreach
La première façon d'améliorer une pour chaque
boucle en PHP est en utilisant le Continuez
mot-clé. Ce que cela va faire pour vous, c’est de sauter le reste des lignes du code PHP dans votre pour chaque
boucle. Disons que vous avez une opération assez complexe dans votre boucle, comme 20 lignes de code. Si vous avez une «clause de garde» au début qui dit: «Si la valeur est inférieure à 500, ignorez le reste de ce code», vous obtiendrez des gains de performances. Ces 20 autres lignes ne seront pas exécutées.
Montrer que Continuez
en code PHP:
foreach ($ indexed_pairs en tant que $ name => $ pair)
si ($ paire[1] <500)
Continuez;
echo $ name. ' est '. $ paire[0]' ans';
Ce que cela fait, c’est que cela «continue à l’avant». Nous ne verrons que le écho
ligne arrive pour $ paire
s où le deuxième élément ($ paire[1]
) est 500 ou plus.
C’est ce qui m’a toujours troublé Continuez
dans un PHP pour chaque
. Toi ne pas lire «continuer» comme «continue à exécuter le code à l'intérieur de la boucle». À la place, un Continuez
dans un PHP pour chaque
signifie plutôt "Continuez au prochain point de l'itération foreach." Se souvenir que c'est crucial pour pouvoir penser clairement à pour chaque
code.
Qu'est-ce qu'un PHP pour chaque Pause
déclaration faire?
La pause est assez différente de Continuez
. Les deux modifient le flux des opérations dans une boucle PHP foreach, mais Pause
arrête l'exécution de l'ensemble pour chaque
, où continuer ne fait que stopper l'exécution de l'élément de travail spécifique en cours de répétition.
Encore une fois, regardons le code:
foreach ($ indexed_pairs en tant que $ name => $ pair)
si ($ paire[1] <500)
Pause;
echo $ name. ' est '. $ paire[0]' ans';
Ce que cela fait est très différent: cela signifie que si la valeur de $ paire[1]
(le deuxième élément du tableau qui est la «valeur» dans le tableau multidimensionnel) est déjà en dessous de 500, plus d'articles dans la $ indexed_pairs
tableau sera même itéré à travers. C'est le pour chaque
aura arrêté avant qu'il ne les traite. Ils n'arrivent jamais jamais.
Encore une fois, je pense que cela vaut la peine de souligner et de reformuler. Dans un PHP pour chaque
, vous dites Pause
parce que tu veux arrêter complètement toute exécution de quoi que ce soit dans le foreach. Vous le "cassez" complètement, le rendant complètement inutilisable pour le reste des exécutions qui se produiraient autrement lors de l'itération. C’est une petite précision, mais une importante.
Pourquoi Foreach est excellent pour PHP
Alors, interrompons ça, PHP pour chaque
Construire est l'un de mes coins préférés de la langue. Et j'espère que vous avez maintenant un sens beaucoup plus clair qu'auparavant de ce que cela fait (et ne fait pas) pour nous. C’est un excellent moyen de trier les structures de données (qu’il s’agisse d’une liste ou d’un tableau multidimensionnel) et d’en faire ce que nous voulons.
Et si nous voulons accroître l’efficacité, nous pouvons faire de notre Continuez
à travers leur processus plus rapidement. Et si nous avons vraiment fini, nous pouvons Pause
ces boucles foreach entièrement.
Je te souhaite bonne chance. Pour chaque apprenant de PHP, aimer pour chaque
est une étape de développement importante. À votre santé!
Excellent contenu d'apprentissage WordPress
[ad_2]