Zoeken…


Alternatieve syntaxis voor besturingsstructuren

PHP biedt een alternatieve syntaxis voor sommige besturingsstructuren: if , while , for , foreach en switch .

In vergelijking met de normale syntaxis, het verschil, dat de openingsaccolade wordt vervangen door een dubbele punt ( : ) en de sluitaccolade vervangen door endif; endwhile; , endfor; , endforeach; of endswitch; respectievelijk. Zie het onderwerp over alternatieve syntaxis voor besturingsstructuren voor individuele voorbeelden.

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

Meerdere elseif instructies met korte syntaxis:

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 - Besturingsstructuren - Alternatieve syntaxis

terwijl

while lus een codeblok doorloopt, zolang een opgegeven voorwaarde waar is.

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

Uitgang: 123456789

Zie het onderwerp Loops voor gedetailleerde informatie.

doen terwijl

do-while lus voert eerst in elk geval eenmaal een codeblok uit en doorloopt vervolgens dat codeblok zolang een opgegeven voorwaarde waar is.

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

Output: `12345678910`

Zie het onderwerp Loops voor gedetailleerde informatie.

ga naar

Met de goto operator kunt u naar een andere sectie in het programma springen. Het is beschikbaar sinds PHP 5.3.

De goto-instructie is een goto gevolgd door het gewenste goto MyLabel; : goto MyLabel; .

Het doel van de sprong wordt gespecificeerd door een label gevolgd door een dubbele punt: MyLabel:

In dit voorbeeld wordt Hello World! afgedrukt Hello World! :

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

verklaren

declare wordt gebruikt om een uitvoeringsrichtlijn voor een codeblok in te stellen.

De volgende richtlijnen worden erkend:

Stel bijvoorbeeld vinkjes in op 1:

declare(ticks=1);

Om de strikte strict_types schakelen, wordt de declare instructie gebruikt met de strict_types declaratie:

declare(strict_types=1);

als anders

Met de instructie if in het bovenstaande voorbeeld kunt u een codefragment uitvoeren wanneer aan de voorwaarde is voldaan. Wanneer u een codefragment wilt uitvoeren, wanneer niet aan de voorwaarde is voldaan, verlengt u het if met een else .

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

PHP Manual - Besturingsstructuren - Anders

De ternaire operator als steno-syntaxis voor if-else

De ternaire operator evalueert iets op basis van een voorwaarde die waar is of niet. Het is een vergelijkingsoperator en wordt vaak gebruikt om een eenvoudige if-else-voorwaarde in een kortere vorm uit te drukken. Hiermee kunt u snel een voorwaarde testen en vervangt vaak een meerregelige if-instructie, waardoor uw code compacter wordt.

Dit is het bovenstaande voorbeeld met een ternaire uitdrukking en variabele waarden: $a=1; $b=2;

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

Uitgangen: a is NOT greater than b .

opnemen en vereisen

vereisen

require is vergelijkbaar met include , behalve dat het een fatale E_COMPILE_ERROR veroorzaakt bij een fout. Als de require mislukt, wordt het script gestopt. Wanneer het include niet lukt, zal het niet stoppen van het script en slechts emit E_WARNING .

require 'file.php';

PHP Manual - Besturingsstructuren - Vereisen

omvatten

De include instructie bevat en evalueert een bestand.

./variables.php

$a = 'Hello World!';

. / Main.php`

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

Wees voorzichtig met deze aanpak, omdat het als een codegeur wordt beschouwd, omdat het opgenomen bestand de hoeveelheid en inhoud van de gedefinieerde variabelen in het gegeven bereik wijzigt.


U kunt ook include bestand opnemen dat een waarde retourneert. Dit is uiterst handig voor het afhandelen van configuratie-arrays:

configuration.php

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

main.php

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

Deze aanpak voorkomt dat het opgenomen bestand uw huidige bereik vervuilt met gewijzigde of toegevoegde variabelen.

PHP Manual - Control Structures - Opnemen


include & vereisen kan ook worden gebruikt om waarden toe te wijzen aan een variabele wanneer iets per bestand wordt geretourneerd.

Voorbeeld:

include1.php-bestand:

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

    return $a;
?>

index.php-bestand:

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

terugkeer

De return instructie keert het programmabestuur terug naar de aanroepfunctie.

Wanneer return vanuit een functie wordt aangeroepen, wordt de uitvoering van de huidige functie beëindigd.

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

Wanneer u returnEndsFunctions(); u krijgt de uitvoer This is executed ;

Wanneer return wordt opgeroepen vanuit een functie met en argument, wordt de uitvoering van de huidige functie beëindigd en wordt de waarde van het argument teruggestuurd naar de aanroepende functie.

voor

for loops worden meestal gebruikt als je een stuk code hebt dat je een bepaald aantal keren wilt herhalen.

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

Uitgangen: 123456789

Zie het onderwerp Loops voor gedetailleerde informatie.

foreach

foreach is een constructie waarmee u eenvoudig reeksen en objecten kunt doorlopen.

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

Uitgangen: 123 .

Om foreach loop met een object te gebruiken, moet het Iterator interface implementeren.

Wanneer u itereert over associatieve arrays:

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

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

Uitgangen: color: red

Zie het onderwerp Loops voor gedetailleerde informatie.

indien anders

elseif

elseif combineert if en else . De instructie if wordt uitgebreid om een andere instructie uit te voeren in het geval dat niet aan de oorspronkelijke if uitdrukking wordt voldaan. Maar de alternatieve uitdrukking wordt alleen uitgevoerd als aan de elseif voorwaardelijke uitdrukking wordt voldaan.

De volgende code geeft aan of "a is groter dan b", "a is gelijk aan b" of "a is kleiner dan 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";
}

Verschillende andere uitspraken

U kunt meerdere elseif-instructies gebruiken binnen dezelfde if-instructie:

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";
}

als

Het if-construct maakt voorwaardelijke uitvoering van codefragmenten mogelijk.

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

PHP Manual - Besturingsstructuren - Indien

schakelaar

De switch heeft dezelfde functie als een reeks if instructies, maar kan het werk in minder regels code uitvoeren. De te testen waarde, zoals gedefinieerd in de switch , wordt vergeleken voor gelijkheid met de waarden in elk van de case totdat een overeenkomst wordt gevonden en de code in dat blok wordt uitgevoerd. Als er geen overeenkomende case wordt gevonden, wordt de code in het default uitgevoerd, als deze bestaat.

Elk codeblok in een case of default moet eindigen met de break instructie. Hiermee wordt de uitvoering van de switch gestopt en wordt de code onmiddellijk daarna voortgezet. Als de break instructie wordt weggelaten, wordt de code van de volgende case instructie uitgevoerd, zelfs als er geen overeenkomst is . Dit kan onverwachte uitvoering van code veroorzaken als de break instructie wordt vergeten, maar kan ook handig zijn wanneer meerdere case instructies dezelfde code moeten delen.

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;
}

Naast het testen van vaste waarden, kan het construct ook worden gedwongen om dynamische instructies te testen door een booleaanse waarde te geven aan de switch en elke expressie in de case . Houd er rekening mee dat de eerste overeenkomende waarde wordt gebruikt, dus de volgende code geeft "meer dan 100" weer:

$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;
}

Zie Verrassingen switch voor mogelijke problemen met los typen tijdens het gebruik van de switch



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow