PHP-kontrollstrukturer: Byt om något annat

⚡ Smart sammanfattning

Kontrollstrukturer och loopar bestämmer vilken väg ett PHP-program tar och upprepar kodblock effektivt. Denna genomgång förklarar if-else- och switch-beslutsstrukturerna och täcker sedan for-, while-, do-while- och foreach-looparna som konkurrenter förväntar sig i detta ämne.

  • 🔀 Kontrollflöde: En kontrollstruktur väljer vilken kod som körs baserat på ett villkor, och omvandlar en rak sekvens till beslutsdriven logik.
  • 🔤 Om-annars: If-else-strukturen kör ett block när ett villkor är sant och ett reservblock när det är falskt.
  • 🧮 Växellåda: switch jämför ett värde mot flera ärendeetiketter och kör matchningsblocket, eller standardvärdet när inget matchar.
  • 🔁 Översikt över loopar: Loopar upprepar ett kodblock, vilket sparar dig från att skriva samma uttalanden många gånger om.
  • 🔢 Räkneloopar: för och medan upprepa medan ett villkor gäller, idealiskt när du vet eller track hur många iterationer behövs.
  • 📦 För varje loop: foreach går igenom varje element i en array utan att själv hantera en indexräknare.
  • 🤖 AI Assist: AI-verktyg kan omvandla långa if-else-kedjor till switch- eller match-satser och hjälpa till att fixa oändliga loopar.

PHP-kontrollstrukturer och loopar

Vad är en kontrollstruktur?

Code Utförandet kan grupperas i kategorier enligt nedan.

  • Sekventiell – den här metoden innebär att all kod exekveras i den ordning den har skrivits.
  • Beslutet – den här handlar om att göra ett val givet ett antal alternativ. Den exekverade koden beror på villkorets värde.

En kontrollstruktur är ett kodblock som bestämmer exekveringsvägen för ett program beroende på värdet på det inställda villkoret.

Låt oss nu titta på några av de kontrollstrukturer som PHP stöder.

PHP IF Else

Om... då... annat är enklaste kontrollstrukturenDen utvärderar villkoren med hjälp av boolesk logik.

När ska man använda om... då... annat

  • Du har ett kodblock som endast bör köras om ett visst villkor är sant
  • Du har två alternativ, och du måste välja ett.
  • Om... då... annars om... används när du måste välja fler än två alternativ och du måste välja ett eller flera

syntax. Syntaxen för om… då… annars är:

<?php
if (condition is true) {
    block one
} else {
    block two
}
?>

HÄR,

  • "om (villkoret är sant)” är kontrollstrukturen
  • "blockera en” är koden som ska köras om villkoret är sant
  • annars är en reserv om villkoret är falskt
  • "block två” är kodblocket som exekveras om villkoret är falskt

Hur det fungerar. Flödesschemat nedan illustrerar hur kontrollstrukturen "if… then… else" fungerar.

PHP IF Else

Låt oss se detta i praktiken. Koden nedan använder "om... då... annat" för att bestämma det större värdet mellan två siffror.

<?php

$first_number = 7;

$second_number = 21;

if ($first_number > $second_number){

echo "$first_number is greater than $second_number";

}else{

echo "$second_number is greater than $first_number";

}

?>

Produktion:

21 is greater than 7

PHP Switch Case

Switch fallet liknar den om… då… annars kontrollstruktur.

Bara exekveras ett enda kodblock beroende på värde av tillståndet.

Om inget villkor är uppfyllt körs standardkodblocket.

Den har följande grundläggande syntax.

<?php
switch(condition){

case value:

// block of code to be executed

break;

case value2:

// block of code to be executed

break;

default:

// default block code

break;

}
?>

HÄR,

  • "växla(…){…}" är kontrollstrukturens blockkod
  • "casevärde: fall..." är de kodblock som ska exekveras beroende på villkorets värde
  • "standard:" är det kodblock som ska köras när inget värde matchar villkoret

Hur det fungerar

Flödesschemat nedan illustrerar hur brytarens kontrollstruktur fungerar.

PHP Switch Case

Praktiskt exempel

Koden nedan använder växelkontrollstrukturen för att visa ett meddelande beroende på veckodag.

<?php

$today = "wednesday";

switch($today){

case "sunday":

echo "pray for us sinners.";

break;

case "wednesday":

echo "ladies night, take her out for dinner";

break;

case "saturday":

echo "take care as you go out tonight.";

break;

default:

echo "have a nice day at work";

break;

}

?>

Produktion:

ladies night, take her out for dinner

PHP-loopar

Loopar är kontrollstrukturer som upprepar ett kodblock så länge ett villkor förblir sant. De sparar dig från att skriva samma sats många gånger. PHP stöder fyra looptyper: for, while, do-while och foreach. För en djupare genomgång, se den dedikerade PHP-loop-handledning.

PHP för loop

For-loopen används när man i förväg vet hur många gånger koden ska köras. Den kombinerar räknaren, villkoret och ökningen på en rad.

<?php
for ($i = 0; $i < 5; $i++) {
    echo $i;
}
?>

Produktion:

01234

PHP While-loop

While-loopen upprepar ett block så länge dess villkor förblir sant. Villkoret kontrolleras före varje iteration, så kroppen kan köras noll gånger.

<?php
$i = 0;
while ($i < 5) {
    echo $i;
    $i++;
}
?>

Produktion:

01234

PHP Do-While-loop

Do-while-loopen är som while-loopen, men den kontrollerar villkoret efter kroppen. Detta garanterar att blocket körs minst en gång.

<?php
$i = 0;
do {
    echo $i;
    $i++;
} while ($i < 5);
?>

Produktion:

01234

PHP Foreach-loop

Foreach-loopen är utformad för arrayer. Den går igenom varje element utan att du behöver hantera en indexräknare.

<?php
$colors = array("red", "green", "blue");
foreach ($colors as $color) {
    echo $color . " ";
}
?>

Produktion:

red green blue

Vanliga frågor

Använd switch när du jämför en variabel med många fasta värden, eftersom den är lättare att läsa än en lång if-else-kedja. Använd if-else för intervall, komplexa villkor eller jämförelser som involverar olika variabler.

break stoppar loopen helt och går vidare till koden efter den. continue hoppar över resten av den aktuella iterationen och går vidare till nästa, utan att avsluta loopen helt.

match är ett modernt alternativ till switch som introducerades i PHP 8. Det returnerar ett värde, använder strikt jämförelse, behöver inga break-satser och utlöser ett fel om ingen arm matchar, vilket gör det säkrare och mer koncist.

Ja. AI kan skriva om en lång if-else-kedja som en ekvivalent switch eller ett PHP 8 matchningsuttryck, keeping logiken är identisk samtidigt som koden blir kortare och lättare att läsa. Testa resultatet efteråt.

Ja. AI kan inspektera loopens tillstånd och räknare, upptäcka ett saknat inkrement eller ett tillstånd som aldrig blir falskt och föreslå en korrigering så att loopen avslutas som avsett.

Sammanfatta detta inlägg med: