Recherche…


Syntaxe alternative pour les structures de contrôle

PHP fournit une syntaxe alternative pour certaines structures de contrôle: if , while , for , foreach et switch .

Par rapport à la syntaxe normale, la différence est que l'entretoise d' ouverture est remplacé par deux points ( : ) et l'accolade de fermeture est remplacé par endif; , en endwhile; , endfor; , endforeach; , ou endswitch; , respectivement. Pour des exemples individuels, voir la rubrique sur la syntaxe alternative pour les structures de contrôle .

if ($a == 42):
    echo "The answer to life, the universe and everything is 42.";
endif;

Plusieurs déclarations elseif utilisant une syntaxe courte:

if ($a == 5):
    echo "a equals 5";
elseif ($a == 6):
    echo "a equals 6";
else:
    echo "a is neither 5 nor 6";
endif;

PHP Manual - Structures de contrôle - Syntaxe alternative

tandis que

while boucle la itération à travers un bloc de code tant qu'une condition spécifiée est vraie.

$i = 1;
while ($i < 10) {
    echo $i;
    $i++;
}

Sortie: 123456789

Pour plus d'informations, reportez-vous à la rubrique Boucles .

faire pendant

do-while boucle do-while while exécute d'abord un bloc de code une fois, dans tous les cas, puis parcourt ce bloc de code tant qu'une condition spécifiée est vraie.

$i = 0;
do {
    $i++;
    echo $i;
} while ($i < 10);

Output: `12345678910`

Pour plus d'informations, reportez-vous à la rubrique Boucles .

aller à

L'opérateur goto permet de passer à une autre section du programme. Il est disponible depuis PHP 5.3.

L'instruction goto est un goto suivi de l'étiquette cible souhaitée: goto MyLabel; .

La cible du saut est spécifiée par une étiquette suivie de deux points: MyLabel:

Cet exemple imprimera Hello World! :

<?php
goto MyLabel;
echo 'This text will be skipped, because of the jump.';
 
MyLabel:
echo 'Hello World!';
?>

déclarer

declare est utilisé pour définir une directive d'exécution pour un bloc de code.

Les directives suivantes sont reconnues:

Par exemple, cochez la case 1:

declare(ticks=1);

Pour activer le mode de type strict, l'instruction declare est utilisée avec la déclaration strict_types :

declare(strict_types=1);

sinon

L'instruction if dans l'exemple ci-dessus permet d'exécuter un fragment de code lorsque la condition est remplie. Lorsque vous souhaitez exécuter un fragment de code, lorsque la condition n'est pas remplie, vous devez étendre le if avec un else .

if ($a > $b) {
  echo "a is greater than b";
} else {
  echo "a is NOT greater than b";
}

PHP Manual - Structures de contrôle - Sinon

L'opérateur ternaire comme syntaxe abrégée pour if-else

L' opérateur ternaire évalue quelque chose en fonction d'une condition vraie ou non. C'est un opérateur de comparaison et souvent utilisé pour exprimer une simple condition if-else sous une forme plus courte. Cela permet de tester rapidement une condition et remplace souvent une instruction if multiligne, ce qui rend votre code plus compact.

C'est l'exemple ci-dessus utilisant une expression ternaire et des valeurs de variable: $a=1; $b=2;

echo ($a > $b) ? "a is greater than b" : "a is NOT greater than b";

Sorties: a is NOT greater than b .

inclure et exiger

exiger

require est similaire à include , sauf qu'il produira une erreur fatale de niveau E_COMPILE_ERROR cas d'échec. Lorsque le require échoue, le script s'arrête. Lorsque l' include échoue, le script ne s'arrête pas et n'émet que E_WARNING .

require 'file.php';

PHP Manual - Structures de contrôle - Exiger

comprendre

L'instruction include comprend et évalue un fichier.

./variables.php

$a = 'Hello World!';

/ main.php`

include 'variables.php';
echo $a;
// Output: `Hello World!`

Soyez prudent avec cette approche, car elle est considérée comme une odeur de code , car le fichier inclus modifie la quantité et le contenu des variables définies dans la portée donnée.


Vous pouvez également include fichier, qui renvoie une valeur. Ceci est extrêmement utile pour gérer les tableaux de configuration:

configuration.php

<?php 
return [
    'dbname' => 'my db',
    'user' => 'admin',
    'pass' => 'password',
];

main.php

<?php
$config = include 'configuration.php';

Cette approche empêchera le fichier inclus de polluer votre portée actuelle avec des variables modifiées ou ajoutées.

PHP Manual - Structures de contrôle - Inclure


include & require peut également être utilisé pour attribuer des valeurs à une variable lorsqu'elle est renvoyée par fichier.

Exemple :

fichier include1.php:

<?php
    $a = "This is to be returned";

    return $a;
?>

fichier index.php:

    $value = include 'include1.php';
   // Here, $value = "This is to be returned"

revenir

L'instruction return renvoie le contrôle du programme à la fonction appelante.

Lorsque return est appelé depuis une fonction, l'exécution de la fonction en cours se termine.

function returnEndsFunctions()
{
   echo 'This is executed';
   return;
   echo 'This is not executed.';
}

Lorsque vous exécutez returnEndsFunctions(); vous obtiendrez le résultat This is executed ;

Lorsque return est appelé depuis une fonction avec et argument, l'exécution de la fonction en cours se terminera et la valeur de l'argument sera renvoyée à la fonction appelante.

pour

for boucles sont généralement utilisées lorsque vous souhaitez répéter un morceau de code un nombre de fois donné.

for ($i = 1; $i < 10; $i++) {
    echo $i;
}

Sorties: 123456789

Pour plus d'informations, reportez-vous à la rubrique Boucles .

pour chaque

foreach est une construction qui vous permet de parcourir facilement les tableaux et les objets.

$array = [1, 2, 3];
foreach ($array as $value) {
    echo $value;
}

Résultats: 123 .

Pour utiliser la boucle foreach avec un objet, il doit implémenter une interface Iterator .

Lorsque vous parcourez des tableaux associatifs:

$array = ['color'=>'red']; 

foreach($array as $key => $value){
    echo $key . ': ' . $value; 
}

Sorties: color: red

Pour plus d'informations, reportez-vous à la rubrique Boucles .

si sinon autrement

sinon

elseif combine if et else . La if la déclaration est étendue à exécuter une instruction différente dans le cas où l'original if l' expression est pas remplie. Cependant, l'expression alternative n'est exécutée que lorsque l'expression conditionnelle elseif est remplie.

Le code suivant affiche soit "a est plus grand que b", "a est égal à b" ou "a est plus petit que b":

if ($a > $b) {
    echo "a is bigger than b";
} elseif ($a == $b) {
    echo "a is equal to b";
} else {
    echo "a is smaller than b";
}

Plusieurs autres déclarations

Vous pouvez utiliser plusieurs instructions elseif dans la même instruction if:

if ($a == 1) {
    echo "a is One";
} elseif ($a == 2) {
    echo "a is Two";
} elseif ($a == 3) {
    echo "a is Three";
} else {
    echo "a is not One, not Two nor Three";
}

si

La construction if permet l'exécution conditionnelle de fragments de code.

if ($a > $b) {
  echo "a is bigger than b";
}

PHP Manual - Structures de contrôle - Si

commutateur

La structure de switch remplit la même fonction qu'une série d'instructions if , mais peut effectuer le travail avec moins de lignes de code. La valeur à tester, telle que définie dans l'instruction switch , est comparée en termes d'égalité avec les valeurs de chacune des instructions de case jusqu'à ce qu'une correspondance soit trouvée et que le code dans ce bloc soit exécuté. Si aucune instruction de case correspondante n'est trouvée, le code dans le bloc default est exécuté, s'il existe.

Chaque bloc de code dans une instruction case ou default doit se terminer par l'instruction break . Cela arrête l'exécution de la structure du switch et continue l'exécution du code immédiatement après. Si l'instruction break est omise, le code de l'instruction case suivante est exécuté, même s'il n'y a pas de correspondance . Cela peut entraîner une exécution de code inattendue si la déclaration break est oubliée, mais peut également être utile lorsque plusieurs instructions de case doivent partager le même code.

switch ($colour) {
case "red":
    echo "the colour is red";
    break;
case "green":
case "blue":
    echo "the colour is green or blue";
    break;
case "yellow":
    echo "the colour is yellow";
    // note missing break, the next block will also be executed
case "black":
    echo "the colour is black";
    break;
default:
    echo "the colour is something else";
    break;
}

En plus de tester des valeurs fixes, la construction peut également être contraint de tester des déclarations dynamiques en fournissant une valeur booléenne au switch déclaration et toute expression au case déclaration. Gardez à l'esprit que la première valeur correspondante est utilisée, le code suivant affichera «plus de 100»:

$i = 1048;
switch (true) {
case ($i > 0):
    echo "more than 0";
    break;
case ($i > 100):
    echo "more than 100";
    break;
case ($i > 1000):
    echo "more than 1000";
    break;
}

Pour plus d'informations sur les problèmes de typage lâche lors de l'utilisation de la structure de switch , reportez-vous à la section Changements de surprise.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow