Boucles en PHP. Un exemple de modification de la valeur d'un élément de tableau dans une boucle foreach

04.12.2023

La syntaxe d'une boucle for est la suivante :

Cette boucle est constituée du mot-clé for , suivi de parenthèses contenant trois expressions à l'intérieur, séparées par des points-virgules. Il a l'ordre d'exécution suivant :

  1. Au début de la boucle, l'expression d'initialisation est exécutée ; elle n'est toujours évaluée (exécutée) qu'une seule fois au tout début.
  2. Ce qui suit est une expression conditionnelle. Avant le début de chaque itération, la valeur de l'expression conditionnelle (condition d'exécution) est calculée ; si elle est évaluée à VRAI, alors le corps de la boucle est exécuté, si elle est évaluée à FALSE, la boucle est terminée. Si la condition est fausse au premier test, le corps de la boucle ne sera pas exécuté une seule fois.
  3. À la toute fin, après avoir effectué les actions dans le corps de la boucle, la dernière expression (l'expression suivante après la condition) est traitée. Dans ce cas, il s'agit d'une expression incrémentale : elle incrémente la valeur de la variable compteur.

Un exemple simple de boucle for :

En fait, la boucle for est presque universelle car elle permet une grande variété d’utilisations.

pour boucle sans pièces d'en-tête

Chacune des expressions de l'en-tête de la boucle for peut être manquante.

Si l’initialisation n’est pas nécessaire ou se produit ailleurs, une expression d’initialisation n’est pas nécessaire. Réécrivons un peu l'exemple précédent :

Veuillez noter que le point-virgule est obligatoire car il indique une expression manquante. L'absence d'expression de condition équivaut à placer la valeur TRUE dans la condition.

Dans ce cas, la boucle s’exécutera sans fin. S'il n'y a pas d'expression incrémentale, alors elle doit être dans le corps de la boucle, sinon la boucle s'exécutera sans fin.

Gardez à l’esprit que l’une ou l’ensemble des trois expressions peut être omise, mais que les points-virgules (;) doivent toujours être utilisés.

Plusieurs expressions en tête d'une boucle for

Dans l'en-tête de la boucle for, chaque expression séparée par un point-virgule peut contenir plusieurs expressions séparées par des virgules. Par conséquent, des expressions de toute complexité peuvent être utilisées.

"; } ?>

Si la condition d'exécution utilise plusieurs expressions séparées par des virgules, alors elles sont toutes évaluées, mais le résultat est repris de la dernière.

Boucles imbriquées

Tout comme les instructions conditionnelles, les boucles peuvent être imbriquées. Un exemple simple avec un seul niveau d'imbrication :

"; pour ($j = 0; $j< 2; $j++) { echo "Вложенный цикл.
"; } } ?>

Très souvent, lors de l'écriture de scripts, vous devez effectuer plusieurs fois la même action. C'est à cela que servent les cycles. Boucles en php, comme dans d'autres langues, sont divisés en plusieurs types :

  1. Boucle avec un compteur for
  2. Boucle avec while, condition do-while
  3. Boucle pour parcourir les tableaux pour chaque

Par exemple, lors de la création d'une boutique en ligne, avant d'afficher les produits à l'écran, nous devons supprimer les produits dont le solde de stock est inférieur à 10. Pour ce faire, nous boucler à travers le tableau avec des marchandises, et en utilisant l'opérateur conditionnel if, nous vérifions le nombre de marchandises dans l'entrepôt et supprimons du tableau toutes les marchandises dont la valeur dans l'entrepôt est inférieure à 10.

Boucle For en PHP

Boucle avec un compteur for- effectué un certain nombre de fois. Regardons un exemple :

"; } ?>

Dans cet exemple, la boucle sera exécutée 11 fois. De 0 (puisque la variable $i = 0) à 10 (puisque $i<= 10). Каждую итерацию $i будет увеличено на 1 ($i++). Чтобы было понятней, сделаем еще один пример:

"; } ?>

La boucle se déroulera de 5 à 9($je< 10 (в предыдущем примере было <= 10)).

La boucle peut également être exécutée dans l'ordre inverse :

5 ; $i--) ( echo "Numéro d'itération : $i
"; } ?>

Le cycle sera exécuté de 10 à 5.

Le cycle peut également être exécuté avec une certaine étape, regardons un exemple :

"; } ?>

La boucle effectuera 3 itérations (0, 5, 10) avec un pas de 5. A chaque itération, le compteur de boucle sera incrémenté de 5.

boucle foreach en PHP

boucle foreach- le cycle le plus courant. Requis dans presque tous les scripts, surtout si le script PHP fonctionne avec des bases de données. Utilisé pour parcourir des tableaux.

Par exemple, regardons un petit exemple :

$valeur) ( echo "Clé : $clé, Valeur : $valeur
"; } ?>

Lorsque vous exécuterez le script, vous verrez :

Clé : 0, Valeur : rouge Clé : 1, Valeur : bleu Clé : 2, Valeur : vert Clé : couleur, Valeur : jaune Clé : test, Valeur : design studio ox2.ru

Boucle while en PHP

boucle while est utilisé pour exécuter une boucle tant qu’une condition est remplie. Si la condition n’est jamais remplie, la boucle entrera en boucle.

Regardons un exemple :

"; } ?>

Sur l'écran, nous verrons des chiffres de 1 à 19

Faire une boucle en PHP :

Faire du vélo faire pendant- fonctionne exactement de la même manière que boucle while, la seule différence est que la condition est satisfaite après itération. Écrivons un exemple :

"; ) tandis que ($i< 20); //Выполняем цикл до те пор, пока $i < 20 ?>

Sur l'écran, nous verrons des nombres de 1 à 20. Veuillez noter que dans l'exemple précédent avec boucle whileétait de 1 à 19, parce que la condition était satisfaite avant l’itération de la boucle.

Pour briser le cycle existe fonction de pause, elle permet sortir de la boucle, quel que soit le nombre d'itérations restantes jusqu'à la fin de la boucle.

Pour sauter une itération et passer à l'itération suivante, il y a continuer la fonction.

Lors de la création de sites Web, des cycles sont presque toujours utilisés, quel que soit le coût de création du site, les fonctionnalités et autres. Alors prenez-les au sérieux !

Très souvent, lors de l'écriture de scripts, vous devez effectuer plusieurs fois la même action. C'est à cela que servent les cycles. Les boucles en PHP, comme dans d'autres langages, sont divisées en plusieurs types : Boucle avec un compteur pour Boucle avec une condition while, do-while Boucle pour parcourir des tableaux foreach

OX2 2014-10-02 2014-10-02

Il est souvent pratique de pouvoir terminer une boucle plus tôt lorsque certaines conditions se présentent. L'opérateur de pause offre cette opportunité. Il fonctionne avec des constructions telles que : while, do while, for, foreach ou switch.

L'instruction break peut prendre un argument numérique facultatif qui lui indique le nombre de structures imbriquées à terminer. La valeur par défaut de l'argument numérique est 1, ce qui termine la boucle en cours. Si une instruction switch est utilisée dans une boucle, alors break/break 1 ne sort que de la construction switch.

\n"; break 1; /* Quitte uniquement la construction switch. */ case 10: echo "Itération 10; sortons
\n"; break 2; /* Quitte la construction switch et la boucle while. */ ) ) // un autre exemple pour ($bar1 = -4; $bar1< 7; $bar1++) { // проверка деления на ноль if ($bar1 == 0) { echo "Выполнение остановлено: деление на ноль невозможно."; break; } echo "50/$bar1 = ",50/$bar1,"
"; } ?>

Bien sûr, vous préférerez parfois simplement sauter une des itérations de la boucle plutôt que de terminer complètement la boucle, auquel cas cela se fait à l'aide de l'instruction continue.

continuer

Pour arrêter le traitement du bloc de code actuel dans le corps de la boucle et passer à l'itération suivante, vous pouvez utiliser l'instruction continue. Il diffère de l'opérateur break en ce sens qu'il n'arrête pas la boucle, mais passe simplement à l'itération suivante.

L'opérateur continue, comme break, peut prendre un argument numérique facultatif, qui indique à combien de niveaux de boucles imbriquées le reste de l'itération sera ignoré. La valeur par défaut de l'argument numérique est 1, ce qui ignore uniquement le reste de la boucle en cours.

"; continuer; ) echo "50/$bar1 = ",50/$bar1,"
"; } ?>

Veuillez noter que pendant l'exécution de la boucle, la valeur zéro de la variable $counter a été ignorée, mais la boucle a continué avec la valeur suivante.

aller à

goto est un opérateur de saut inconditionnel. Il est utilisé pour accéder à une autre section du code du programme. L'endroit où vous devez vous rendre dans le programme est indiqué par un label (identifiant simple), suivi de deux points. Pour continuer, l'étiquette souhaitée est placée après l'instruction goto.

Un exemple simple d'utilisation de l'instruction goto :

L'instruction goto présente certaines limitations quant à son utilisation. L'étiquette cible doit se trouver dans le même fichier et dans le même contexte, ce qui signifie que vous ne pouvez pas sortir des limites d'une fonction ou d'une méthode, ni entrer dans l'une d'elles. Vous ne pouvez pas non plus sauter dans une boucle ou une instruction switch. Mais il peut être utilisé pour échapper à ces constructions (des boucles et des instructions switch). Généralement, l'instruction goto est utilisée à la place des instructions break à plusieurs niveaux.

"; ) echo "après la boucle - avant la marque"; // l'instruction ne sera pas exécutée end: echo "Après la marque"; ?>

Dans certains cas, il est nécessaire d’exécuter du code jusqu’à obtenir le résultat souhaité. Pour ce faire, PHP fournit des boucles while, for et foreach.

Syntaxe de la boucle While en PHP

Syntaxe faire du véloalors que:

Un exemple d'utilisation d'une boucle while en PHP :

Dans l'exemple de boucle php while ci-dessus, la variable compteur $i est d'abord initialisée à 0.

La condition de la boucle while est $i< 10 . Это означает, что мы проверяем, меньше ли переменная, чем 10.

Tout ce qui est entre accolades constitue les instructions (corps) de la boucle. Ils sont répétés tant que la condition renvoie true . Dans l'exemple ci-dessus, $i est imprimé à l'écran, puis la variable du compteur est incrémentée de 1. Ceci est important pour que la condition de boucle finisse par échouer. Si la condition de boucle est toujours remplie, par exemple parce que vous avez oublié d'incrémenter la variable compteur $i , alors le script entrera dans une boucle infinie. Heureusement, PHP arrêtera d'exécuter votre script après un certain temps.

Vous pouvez rendre la condition et le corps de la boucle aussi complexes que vous le souhaitez. Par exemple, utilisez while inside tandis que php, utilisez php while pour parcourir le tableau ( array ) ou définissez plusieurs variables de compteur :

$min) ( echo "count1: $count1; count2: $count2
"; $ counter1 += 2; // Expression abrégée pour $counter1 = $counter1 + 2; $counter2 -= 3; // Expression abrégée pour $count2 = $count2-3; ) ?>

L'exemple définit deux variables : $ counter 1 et $ counter 2 . Une variable est incrémentée de 2 et l'autre est décrémentée de 3. La boucle while s'exécute tant que les deux conditions sont remplies $ count 1< $ max и $ count 2 >$ min.

Effet des mots-clés break et continue sur une boucle

Utilisation de la commande casser Peut interrompre l'exécution de la boucle while dans PHP. Disons que nous recherchons un utilisateur spécifique. Ensuite, vous pouvez parcourir tous les utilisateurs dans une boucle while. Si nous trouvons le bon utilisateur, nous arrêterons la boucle en utilisant le mot-clé casser.

Un exemple simple d'utilisation du mot-clé break :

tandis que ($count< $max) { if ($count == 10) { echo "Останавливаемся на числе 10"; break; } echo "$count,"; $counter += $increment; // увеличивает $count на значение $increment } ?>

Ce code parcourt les nombres par ordre croissant de 0 à $max = 30, en ajoutant à la variable $count la valeur de $increment, autrement dit le chiffre 2. Mais si la variable $count est égale à 10, ce qui suit va arriver: sortir de la boucle while php.

Mot clé continuer ne termine pas la boucle tandis qu'en php, c'est complètement, mais ignore simplement le reste du corps de la boucle. L'exemple ci-dessous le démontre :

tandis que ($count< $max) { $counter += $increment; // увеличивает $payer на $increment if ($count >= 10 && $ compte<= 15) { echo "Число между 10 и 15
"; continuer; )

echo "$compte
"; } ?>

Cette boucle commence à 0 et incrémente le compteur jusqu'à $max. La variable $counter est toujours incrémentée de la valeur de la variable $increment. Autrement dit, il prend les valeurs 0, 2, 4, etc.

Si la variable $count a une valeur comprise entre 10 et 15, le texte et la déclaration seront imprimés à l'écran continuer ignorera les autres expressions dans le corps de la boucle. En conséquence, nous voyons que les nombres 10, 12 et 14 ne sont pas affichés.

faire une boucle en PHP

Modification mineure alors que est une boucle do - while. Dans ce cas, la condition de boucle n'est vérifiée qu'après que son corps a été exécuté. Cela signifie que le corps de la boucle sera exécuté au moins une fois.

Syntaxe de la boucle Do-while :

Disons que nous voulons générer un nombre aléatoire qui doit être soit compris entre 0 et 10, soit entre 20 et 30. D'après la définition de la fonction rand ( $ min, $max) , vous pouvez générer aléatoirement un nombre compris entre $min Et $max:

10 && $au hasard< 20) { $random = rand (0, 30); }

echo "Notre nombre aléatoire : $random" ; ?>

Utiliser la boucle php fairealors que, vous pouvez obtenir la valeur d'une expression sans initialiser la variable $random. Le corps de la boucle est exécuté avant que la condition ne soit testée. L’exemple ci-dessus ressemblerait alors à ceci :

10 && $au hasard< 20);

echo "Notre nombre aléatoire : $random" ; ?>

Pour un débutant, la boucle do-while peut être un peu déroutante. Si vous ne comprenez pas pleinement son objectif, ce n’est pas un problème. Les boucles Do-while sont rarement utilisées dans la pratique.

Si dans une chaîne entourée de guillemets simples, une barre oblique inverse "\" apparaît avant tout autre caractère (autre que "\" ou """), alors elle est traitée comme un caractère normal et est affichée comme tous les autres. Par conséquent, une barre oblique inverse est obligatoire escape uniquement s’il se trouve à la fin de la ligne, avant le guillemet fermant.

Il existe un certain nombre de combinaisons de caractères en PHP qui commencent par le caractère barre oblique inverse. Celles-ci sont appelées séquences d'échappement et elles ont des significations particulières dont nous parlerons un peu plus tard. Ainsi, contrairement aux deux autres syntaxes, les variables et les séquences d'échappement pour les caractères spéciaux apparaissant dans les chaînes entourées de guillemets simples ne sont pas traitées.

écho "Vous pouvez également insérer dans des lignes
caractère de nouvelle ligne ainsi,
parce que c'est normal"
;
// Sortie : Pour afficher " vous avez besoin
// met \ devant
écho "Pour afficher \" vous devez avant ".
"la mettre \\";
// Sorties : Voulez-vous supprimer C:\*.* ?
écho « Voulez-vous supprimer C:\\*.* ? »;
// Sortie : Cela n'insérera pas : \n
// nouvelle ligne
écho "Cela n'insérera pas :\nnewline";
// Sorties : $expand variables également
// $ni l'un ni l'autre n'est substitué
écho "Les variables $expand sont également $soit".
"non substitué";
?>

16.1. Exemple. Utiliser des séquences d'échappement

17. Guillemets doubles

Si la chaîne est placée entre guillemets """, PHP reconnaît davantage de séquences d'échappement pour les caractères spéciaux.

Certains d'entre eux sont présentés dans le tableau.
Tableau. Séquences de contrôle.

Nous le répétons, si vous souhaitez échapper à tout autre caractère, la barre oblique inverse sera également imprimée !

La propriété la plus importante des chaînes entre guillemets est la gestion des variables.

Hérédoc

Une autre façon de définir des chaînes consiste à utiliser la syntaxe heredoc. Dans ce cas, la ligne doit commencer par le caractère<<<, после которого идет идентификатор. Заканчивается строка этим же идентификатором. Закрывающий идентификатор должен начинаться в первом столбце строки. Кроме того, идентификатор должен соответствовать тем же правилам именования, что и все остальные метки в PHP: содержать только буквенно-цифровые символы и знак подчеркивания и начинаться не с цифры или знака подчеркивания.

Le texte Heredoc se comporte de la même manière qu’une chaîne entre guillemets doubles, sans les avoir. Cela signifie que vous n'avez pas besoin d'échapper aux guillemets dans Heredoc, mais vous pouvez toujours utiliser les séquences d'échappement répertoriées ci-dessus.

Les variables à l'intérieur de heredoc sont également traitées.

$str =<<Exemple de chaîne s'étendant sur plusieurs
lignes utilisant
syntaxe hérdocienne
NEM ;
// Ici l'identifiant est EOD. Ci-dessous
// Identifiant EOT
$name = "Vasia" ;
écho<<Je m'appelle "$name".
EOT ;
// cela affichera "Je m'appelle "Vasya"."
?>

Exemple. Utiliser la syntaxe hérdocienne
Remarque : le support Heredoc a été ajouté dans PHP 4.

18. Tapez un tableau

Un tableau en PHP est une carte ordonnée - un type qui convertit les valeurs en clés. Ce type est optimisé de plusieurs manières, vous pouvez donc l'utiliser comme un véritable tableau, une liste (vecteur), une table de hachage (qui est une implémentation de carte), une pile, une file d'attente, etc. Puisque vous pouvez avoir un autre tableau PHP comme valeur, vous pouvez
il est également facile d'imiter les arbres.

Vous pouvez définir un tableau à l'aide de la construction array() ou en attribuant directement des valeurs à ses éléments. Définition utilisant
array() tableau ( => valeur,
=> valeur1, ...)

La construction du langage array() prend des paires clé => valeur comme paramètres, séparées par des virgules. Le symbole => correspond à une valeur avec sa clé. La clé peut être un entier ou une chaîne, et la valeur peut être n'importe quel type disponible en PHP. La clé numérique d'un tableau est souvent appelée index. L'indexation des tableaux en PHP commence à zéro.

La valeur d'un élément du tableau peut être obtenue en spécifiant la clé de l'élément recherché après le nom du tableau entre crochets. Si la clé du tableau est une notation entière standard, elle est traitée comme un nombre ; sinon, elle est traitée comme une chaîne.

Par conséquent, écrire $a["1"] équivaut à écrire $a, tout comme $a["-1"] est équivalent à $a[-1].

$livres = array("php" =>
"Guide de l'utilisateur PHP",
12 => vrai );
echo $livres [ "php" ];
//affichera le "Guide de l'utilisateur PHP"
echo $livres [ 12 ]; // produira 1
?>

18.1. Exemple. Tableaux en PHP

Si aucune clé n'est spécifiée pour un élément, alors la clé numérique maximale augmentée de un est prise comme clé. Si vous spécifiez une clé à laquelle une valeur a déjà été attribuée, elle sera écrasée. Depuis PHP 4.3.0, si la clé maximale est un nombre négatif, alors la clé suivante du tableau sera zéro (0).

// les tableaux $arr et $arr1 sont équivalents
$arr = tableau(5 => 43 , 32 , 56 , "b" => 12 );
$arr1 = tableau(5 => 43 , 6 => 32 ,
7 => 56 , "b" => 12 );
?>

18.2. Exemple. Tableaux en PHP

Si vous utilisez TRUE ou FALSE comme clé, sa valeur est respectivement convertie en un et zéro de type entier. Si nous utilisons NULL, alors au lieu de la clé, nous obtiendrons une chaîne vide. Vous pouvez également utiliser la chaîne vide elle-même comme clé, mais elle doit être placée entre guillemets. Ce n’est donc pas la même chose que d’utiliser des crochets vides. Les tableaux et les objets ne peuvent pas être utilisés comme clés.

Définition utilisant la syntaxe des crochets

Vous pouvez créer un tableau en y écrivant simplement des valeurs. Comme nous l'avons déjà dit, la valeur d'un élément du tableau peut être obtenue à l'aide de crochets, à l'intérieur desquels vous devez indiquer sa clé, par exemple $book["php"]. Si vous spécifiez une nouvelle clé et une nouvelle valeur, par exemple $book["new_key"]="new_value", alors un nouvel élément sera ajouté au tableau. Si nous ne spécifions pas la clé, mais attribuons uniquement la valeur $book="new_value", alors le nouvel élément du tableau aura une clé numérique supérieure de un au maximum existant. Si le tableau auquel nous ajoutons des valeurs n'existe pas déjà, il sera créé.

$books [ "clé" ]= valeur ; // ajouté au tableau
// Valeur des livres $
// valeur avec clé
$livres = valeur1 ; /* ajouté au tableau
valeur valeur1 s
clé 13, parce que
clé maximale y
nous étions 12 */
?>

Afin de modifier un élément spécifique du tableau, il vous suffit de lui attribuer une nouvelle valeur ainsi que sa clé. Vous ne pouvez pas modifier la clé d'un élément, vous pouvez uniquement supprimer un élément (paire clé/valeur) et en ajouter un nouveau. Pour supprimer un élément du tableau, vous devez utiliser la fonction unset().

$livres = array("php" =>
"Guide de l'utilisateur PHP",
12 => vrai );
$livres =
"Livre sur Perl" ; // élément ajouté
// avec clé (index)
// 13 est équivalent
// $livres =
// "Livre sur Perl" ;
$livres["lisp"] =
123456 ; /* Ceci en ajoute un nouveau au tableau