Tout ce que vous devez savoir • WPShout

By | octobre 1, 2019

tuto wordpress

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 tableauet 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 $ paires 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é!