Php-onderbrekingslus. Hoe je while- en do-while-loops gebruikt. terwijl syntaxis in PHP

Laatste update: 1/11/2015

Om herhaalbare acties uit te voeren in PHP, zoals in andere programmeertalen, worden loops gebruikt. PHP kent de volgende soorten lussen:

voor lus

De for-lus heeft de volgende formele definitie:

Voor ([initialiseer teller]; [voorwaarde]; [verander teller]) ( // acties )

Beschouw de standaard voor lus:

"; } ?>

Het eerste deel van de lusdeclaratie - $i = 1 - creëert en initialiseert de teller - de variabele $i. En voordat de lus wordt uitgevoerd, is de waarde ervan 1. In wezen is dit hetzelfde als het declareren van een variabele.

Het tweede deel is de voorwaarde waaronder de lus wordt uitgevoerd. In dit geval loopt de lus totdat $i 10 bereikt.

Het derde deel is het verhogen van de teller met één. Nogmaals, we hoeven niet noodzakelijkerwijs met één te verhogen. U kunt verlagen: $i--.

Als resultaat hiervan zal het lusblok 9 keer doorlopen totdat de waarde van $i 10 wordt. En elke keer zal deze waarde met 1 toenemen. Elke individuele herhaling van de lus wordt een iteratie genoemd. In dit geval zijn er dus 9 iteraties.

terwijl lus

De while-lus test de waarheid van een bepaalde voorwaarde, en als de voorwaarde waar is, wordt het blok met lusexpressies uitgevoerd:

"; $teller++; ) ?>

Als er slechts één instructie in het while-blok staat, kunnen de accolades van het blok worden weggelaten:

"; ?>

do..while-lus

De do..while-lus is vergelijkbaar met de while-lus, alleen nu wordt het lusblok uitgevoerd en alleen dan wordt de voorwaarde getest. Dat wil zeggen dat zelfs als de voorwaarde onwaar is, het lusblok minstens één keer wordt uitgevoerd:

"; $counter++; ) while($counter<10) ?>

Ga door met en breek verklaringen

Soms doet zich een situatie voor waarin u een lus moet verlaten zonder te wachten tot deze is voltooid. In dit geval kunnen we de break-instructie gebruiken:

80) ( break; ) echo "Het kwadraat van $i is gelijk aan $result
"; } ?>

En als het resultaat van de operatie plotseling meer dan 80 blijkt te zijn, wordt de lus beëindigd.

De continue-operator wordt ook gebruikt om lussen te besturen. Het gaat naar de volgende iteratie van de lus:

"; } ?>

Wanneer bij het uitvoeren van het programma de waarde van $i gelijk wordt aan 5, zal de overgang naar de volgende iteratie plaatsvinden en zullen alle andere expressies die volgen op de continue-operator niet worden uitgevoerd.

In sommige gevallen is het nodig om code uit te voeren totdat het gewenste resultaat is bereikt. Om dit te doen, biedt PHP while-, for- en foreach-lussen.

While-lussyntaxis in PHP

Syntaxis cyclusterwijl:

Een voorbeeld van het gebruik van een while-lus in PHP:

In het php while-lusvoorbeeld hierboven wordt de tellervariabele $i eerst geïnitialiseerd op 0.

De voorwaarde van de while-lus is $i< 10 . Это означает, что мы проверяем, меньше ли переменная, чем 10.

Alles wat tussen accolades staat, zijn de instructies (body) van de lus. Ze worden herhaald zolang de voorwaarde true retourneert. In het bovenstaande voorbeeld wordt $i op het scherm afgedrukt en vervolgens wordt de countervariabele met 1 verhoogd. Dit is belangrijk zodat de lusvoorwaarde uiteindelijk zal mislukken. Als altijd aan de lusvoorwaarde wordt voldaan, bijvoorbeeld omdat u bent vergeten de tellervariabele $i te verhogen, dan zal het script een oneindige lus ingaan. Gelukkig stopt PHP na een tijdje met het uitvoeren van je script.

U kunt zowel de lusvoorwaarde als de lusbody zo complex maken als u wilt. Gebruik bijvoorbeeld terwijl je binnen bent terwijl php, use php while om de array te doorlopen ( array ) of definieer meer dan één tellervariabele:

$min) ( echo "telling1: $telling1; telling2: $telling2
"; $ counter1 += 2; // Korte uitdrukking voor $counter1 = $counter1 + 2; $counter2 -= 3; // Korte uitdrukking voor $count2 = $count2-3; ) ?>

In het voorbeeld worden twee variabelen gedefinieerd: $ counter 1 en $ counter 2 . De ene variabele wordt met 2 verhoogd en de andere met 3 verlaagd. De while-lus loopt zolang aan beide voorwaarden wordt voldaan $ count 1< $ max и $ count 2 >$ min.

Impact van de break- en continue-zoekwoorden in een lus

Met behulp van de opdracht pauze Kan onderbreek de uitvoering van de while-lus PHP. Stel dat we op zoek zijn naar een specifieke gebruiker. Vervolgens kunt u in een while-lus alle gebruikers doorlopen. Als we de juiste gebruiker vinden, stoppen we de lus met behulp van het trefwoord pauze.

Een eenvoudig voorbeeld van het gebruik van het zoekwoord break:

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

Deze code doorloopt de getallen in oplopende volgorde van 0 tot $max = 30, waarbij de waarde van $increment wordt opgeteld bij de variabele $count, met andere woorden het getal 2. Maar als de variabele $count gelijk is aan 10, zal het volgende gebeuren: gebeuren: verlaten van de while-lus php.

Zoekwoord doorgaan beëindigt de lus niet while in php is volledig , maar slaat gewoon de rest van de lusbody over. Het onderstaande voorbeeld laat dit zien:

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

echo "$aantal
"; } ?>

Deze lus begint bij 0 en verhoogt de teller tot $max. De variabele $counter wordt altijd verhoogd met de waarde van de variabele $increment. Dat wil zeggen, er zijn waarden 0, 2, 4, enz. nodig.

Als de variabele $count een waarde tussen 10 en 15 heeft, worden de tekst en de verklaring op het scherm afgedrukt doorgaan slaat andere expressies in de body van de lus over. Als resultaat zien we dat de nummers 10, 12 en 14 niet worden uitgevoerd.

do-while-lus in PHP

Kleine wijziging terwijl is een do - while-lus. In dit geval wordt de lusvoorwaarde pas gecontroleerd nadat de inhoud ervan is uitgevoerd. Dit betekent dat de body van de lus minimaal één keer wordt uitgevoerd.

Syntaxis van de do-while-lus:

Laten we zeggen dat we een willekeurig getal willen genereren dat tussen 0 en 10 of tussen 20 en 30 moet liggen. Volgens de definitie van de randfunctie ( $ min, $max) , kunt u willekeurig een getal tussen genereren $min En $max:

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

echo "Ons willekeurig getal: $random"; ?>

PHP-loop gebruiken Doenterwijl, kunt u de waarde van een expressie verkrijgen zonder de variabele $random te initialiseren. De body van de lus wordt uitgevoerd voordat de voorwaarde wordt getest. Dan zou het bovenstaande voorbeeld er als volgt uitzien:

10 && $willekeurig< 20);

echo "Ons willekeurig getal: $random"; ?>

Voor een beginner kan de do-while-lus een beetje verwarrend zijn. Als u het doel ervan niet volledig begrijpt, is dat geen probleem. Do-while-loops worden in de praktijk zelden gebruikt.

Loop-instructies worden heel vaak in elke programmeertaal gebruikt. Bijna alle problemen maken gebruik van lussen, dus het is de moeite waard om speciale aandacht te besteden aan het leren ervan. Er zijn 4 soorten lussen in PHP:

  • while (voorvoegsel conditiecontrole);
  • do..while (conditiecontrole na de perfix);
  • voor ;
  • voorelkaar;

De eerste drie lussen zijn vergelijkbaar met standaardlussen uit programmeertalen (C++, Pascal), en de laatste (foreach) is vergelijkbaar met Perl. Laten we de eerste drie lusoperatoren afzonderlijk bekijken, en de laatste zal in een aparte les worden behandeld. Merk op dat elk van de lussen geneste lussen toestaat, dat wil zeggen een lus binnen een lus.

While-lusinstructie in PHP

Een vrij eenvoudige lusoperator waarvan de syntaxis sterk lijkt op die in andere programmeertalen.

Terwijl syntaxis in PHP:

//er kan sprake zijn van een complexe logische voorwaarde( exploitanten; ) ?>

De voorwaarde bevat een expressie die waar of onwaar moet zijn. Als de voorwaarde waar is, worden de uitspraken tussen accolades uitgevoerd. Waarna de voorwaarde opnieuw op waarheid wordt gecontroleerd. Als de voorwaarde onwaar is, komt het programma niet in de lus. Bij een enkele uitspraak kunnen de accolades worden weggelaten.

Opmerking: de voorwaarde kan uit heel veel uitdrukkingen bestaan ​​met behulp van de algebra van de logica &&, ||, ! enz.

Het is de moeite waard om aandacht te besteden aan het feit dat als er operators in de voorwaarde zijn, deze op de een of andere manier moeten worden gewijzigd, anders zal de lus eenvoudigweg in cycli verlopen.

Hier is een eenvoudig voorbeeld van het gebruik van while:

"; $i++; ) ?>

Het bovenstaande voorbeeld levert de volgende uitvoer op:

ik = 0
ik = 1
ik=2
ik = 3
ik=4

Houd er rekening mee dat $i=5 niet wordt afgedrukt omdat i neemt helemaal toe aan het einde van de lus en daarom zal, zodra deze 5 bereikt, eenvoudigweg niet aan de voorwaarde voor deelname aan de lus worden voldaan.

break-instructie in PHP

Er is een speciale break-instructie om de lus onmiddellijk te beëindigen. Deze operator wordt vaak gebruikt om een ​​oneindige lus te verlaten wanneer de voorwaarde altijd waar is. Het hierboven beschreven voorbeeld zou bijvoorbeeld als volgt kunnen worden geschreven:

//voorwaarde is altijd waar( echo "i =".$i."
"; $i++; if($i>=5) break; ) ?>

Het resultaat zal hetzelfde zijn als in het vorige voorbeeld.

De continue-instructie in PHP

Operator gaat verder;

//voorwaarde is altijd waar( echo "i =".$i."
beëindigt de huidige iteratie van de lus door naar het begin te gaan, maar beëindigt de lus niet volledig. Bijvoorbeeld:

"; $i++; if($i>=5) break; else continue; ) ?>

Het resultaat van dit voorbeeld zal hetzelfde zijn als de voorgaande voorbeelden.

Zoals de praktijk laat zien, gaan operators door;

"; } en breken; helpen vaak bij het implementeren van complexe cycli.
"; } ?>

Laat me je nog een voorbeeld geven van het gebruik van de while-lus:

//de resultaten van deze twee whiles zullen verschillend zijn //vanwege de post-prefix en de prefix-vorm

$i=0; while (++$i //voorvoegselvorm ( echo "i =".$i."

De do...while-lusinstructie in PHP

De do...while-instructie lijkt sterk op een reguliere while-instructie. Het enige verschil is de tijd die nodig is om de toestand te controleren. De do...while-lus wordt minstens één keer uitgevoerd, aangezien de controle helemaal aan het einde plaatsvindt. De do...while-syntaxis is:

Laten we eens kijken naar een voorbeeld:

"; $i++; ) while($i

Het resultaat is vergelijkbaar met de eerste beschouwde voorbeelden.

Het is vermeldenswaard dat de exploitanten doorgaan;

"; } ?>

en breken;

kan ook in dergelijke cycli worden gebruikt.

Voor lusoperator in PHP

De syntaxis van de for-instructie is als volgt: Bij het starten vindt de initiële initialisatie van variabelen plaats. Usloviya moet een of meer lusbeëindigingsvoorwaarden bevatten. Shag bevat instructies die aan het einde van elke iteratie worden uitgevoerd. Bijvoorbeeld:

Het resultaat van deze lus zal hetzelfde zijn als de vorige voorbeelden.

Het grote voordeel van het gebruik van for is dat het luslichaam mogelijk ontbreekt en dat alle noodzakelijke bewerkingen in het shag-gedeelte worden uitgevoerd. Voor de duidelijkheid, hier is een voorbeeld:

voor staat het gebruik van doorgaan toe;

en breken; .

Tenslotte is hier een voorbeeld van twee gelijkwaardige lusconstructies, maar de ene is voor en de andere voor terwijl

Gelijk aan het volgende:

Als binnen een string tussen enkele aanhalingstekens een backslash "\" voorkomt vóór enig ander teken (behalve "\" of """), dan wordt dit behandeld als een normaal teken en wordt het net als alle andere tekens weergegeven. Er is alleen een escape nodig als het aan het einde van de regel staat, vóór het afsluitende citaat.

Er zijn een aantal tekencombinaties in PHP die beginnen met het backslash-teken. Dit worden ontsnappingssequenties genoemd en ze hebben een speciale betekenis waar we het later over zullen hebben. In tegenstelling tot de andere twee syntaxis worden variabelen en escape-reeksen voor speciale tekens die voorkomen in tekenreeksen tussen enkele aanhalingstekens niet verwerkt. echo
"Je kunt ook in regels invoegen
newline-teken dus,
;
omdat het normaal is"
// Uitvoer: om "uit te voeren" heb je nodig
Er zijn een aantal tekencombinaties in PHP die beginnen met het backslash-teken. Dit worden ontsnappingssequenties genoemd en ze hebben een speciale betekenis waar we het later over zullen hebben. In tegenstelling tot de andere twee syntaxis worden variabelen en escape-reeksen voor speciale tekens die voorkomen in tekenreeksen tussen enkele aanhalingstekens niet verwerkt. // plaats \ ervoor.
"Om \" weer te geven, moet u eerst ";
"zet haar \\"
Er zijn een aantal tekencombinaties in PHP die beginnen met het backslash-teken. Dit worden ontsnappingssequenties genoemd en ze hebben een speciale betekenis waar we het later over zullen hebben. In tegenstelling tot de andere twee syntaxis worden variabelen en escape-reeksen voor speciale tekens die voorkomen in tekenreeksen tussen enkele aanhalingstekens niet verwerkt. // Uitvoer: Wilt u C:\*.* verwijderen?;
"Wilt u C:\\*.* verwijderen?"
// Uitvoer: Hierdoor wordt niet ingevoegd: \n
Er zijn een aantal tekencombinaties in PHP die beginnen met het backslash-teken. Dit worden ontsnappingssequenties genoemd en ze hebben een speciale betekenis waar we het later over zullen hebben. In tegenstelling tot de andere twee syntaxis worden variabelen en escape-reeksen voor speciale tekens die voorkomen in tekenreeksen tussen enkele aanhalingstekens niet verwerkt. // nieuwe regel;
"Hiermee wordt niet ingevoegd:\nnieuweregel"
// Uitvoer: $expand variabelen ook
Er zijn een aantal tekencombinaties in PHP die beginnen met het backslash-teken. Dit worden ontsnappingssequenties genoemd en ze hebben een speciale betekenis waar we het later over zullen hebben. In tegenstelling tot de andere twee syntaxis worden variabelen en escape-reeksen voor speciale tekens die voorkomen in tekenreeksen tussen enkele aanhalingstekens niet verwerkt. // $ether wordt niet vervangen.
"$expand variabelen zijn ook $either";
?>

"niet vervangen"

16.1. Voorbeeld. Ontsnappingsreeksen gebruiken

17. Dubbele aanhalingstekens

Als de string tussen dubbele aanhalingstekens """ staat, herkent PHP meer escape-reeksen voor speciale tekens.
Sommigen van hen worden weergegeven in de tabel.

Tafel. Controlereeksen.

We herhalen: als je aan een ander personage wilt ontsnappen, wordt de backslash ook afgedrukt!

De belangrijkste eigenschap van tekenreeksen met dubbele aanhalingstekens is de verwerking van variabelen.

Hierdoc<<<, после которого идет идентификатор. Заканчивается строка этим же идентификатором. Закрывающий идентификатор должен начинаться в первом столбце строки. Кроме того, идентификатор должен соответствовать тем же правилам именования, что и все остальные метки в PHP: содержать только буквенно-цифровые символы и знак подчеркивания и начинаться не с цифры или знака подчеркивания.

Een andere manier om tekenreeksen te definiëren is door de heredoc-syntaxis te gebruiken. In dit geval moet de regel beginnen met het teken

Heredoc-tekst gedraagt ​​zich op dezelfde manier als een string tussen dubbele aanhalingstekens, zonder dat deze aanwezig zijn. Dit betekent dat u in heredoc geen aanhalingstekens hoeft te gebruiken, maar dat u nog steeds de bovenstaande ontsnappingsreeksen kunt gebruiken.

Variabelen binnen heredoc worden ook verwerkt.<<$str =
Voorbeeld van een string die meerdere overspant
lijnen gebruiken
heredoc-syntaxis
EOD;
// Hier is de identificatie EOD. Onderstaand
// EOT-identificatie
$naam = "Vasya" ;<<echo
Mijn naam is "$naam".
// hierdoor wordt "Mijn naam is" Vasya "afgedrukt."
?>

Voorbeeld. Gebruik de heredoc-syntaxis
Opmerking: Heredoc-ondersteuning is toegevoegd in PHP 4.

18. Typ array

Een array in PHP is een geordende kaart - een type dat waarden omzet in sleutels. Dit type is op verschillende manieren geoptimaliseerd, zodat u het kunt gebruiken als een daadwerkelijke array, een lijst (vector), een hashtabel (wat een kaartimplementatie is), een stapel, een wachtrij, enz. Omdat je een andere PHP-array als waarde kunt hebben, kan dat ook
het is ook gemakkelijk om bomen te emuleren.

U kunt een array definiëren met behulp van de array()-constructie of door rechtstreeks waarden aan de elementen ervan toe te wijzen. Definitie gebruik
array() array ( => waarde,
=> waarde1, ...)

De taalconstructie array() neemt key => waardeparen als parameters, gescheiden door komma's. Het => symbool komt overeen met een waarde met de bijbehorende sleutel. De sleutel kan een geheel getal of een string zijn, en de waarde kan elk type zijn dat beschikbaar is in PHP. De numerieke sleutel van een array wordt vaak de index genoemd. Array-indexering in PHP begint vanaf nul.

De waarde van een array-element kan worden verkregen door de sleutel van het gezochte element op te geven na de arraynaam tussen vierkante haken. Als de arraysleutel een standaard gehele notatie is, wordt deze behandeld als een getal; anders wordt deze behandeld als een tekenreeks.

Daarom is het schrijven van $a["1"] gelijk aan het schrijven van $a, net zoals $a["-1"] gelijk is aan $a[-1].

$boeken = array("php" =>
"PHP-gebruikersgids" ,
12 => waar);
echo $boeken [ "php" ];
//zal "PHP-gebruikersgids" weergeven
echo $boeken [ 12 ]; //zal 1 uitvoeren
?>

18.1. Voorbeeld. Arrays in PHP

Als voor een element geen sleutel is opgegeven, wordt de maximale numerieke sleutel, verhoogd met één, als sleutel genomen. Als u een sleutel opgeeft waaraan al een waarde is toegewezen, wordt deze overschreven. Als de maximale sleutel een negatief getal is, zal vanaf PHP 4.3.0 de volgende arraysleutel nul (0) zijn.

// arrays $arr en $arr1 zijn equivalent
$arr = array(5 => 43, 32, 56, "b" => 12);
$arr1 = array(5 => 43, 6 => 32,
7 => 56, "b" => 12);
?>

18.2. Voorbeeld. Arrays in PHP

Als u TRUE of FALSE als sleutel gebruikt, wordt de waarde ervan geconverteerd naar respectievelijk één en nul van het type geheel getal. Als we NULL gebruiken, krijgen we in plaats van de sleutel een lege string. U kunt ook de lege string zelf als sleutel gebruiken, maar deze moet tussen aanhalingstekens staan. Het is dus niet hetzelfde als het gebruik van lege vierkante haken. Arrays en objecten kunnen niet als sleutels worden gebruikt.

Definitie met behulp van de syntaxis van vierkante haakjes

Je kunt een array maken door er simpelweg waarden in te schrijven. Zoals we al hebben gezegd, kan de waarde van een array-element worden verkregen met behulp van vierkante haakjes, waarbinnen je de sleutel ervan moet aangeven, bijvoorbeeld $book["php"]. Als u een nieuwe sleutel en een nieuwe waarde opgeeft, bijvoorbeeld $book["new_key"]="new_value", dan wordt een nieuw element aan de array toegevoegd. Als we de sleutel niet specificeren, maar alleen de waarde $book="new_value" toewijzen, zal het nieuwe array-element een numerieke sleutel hebben die één groter is dan de maximaal bestaande. Als de array waaraan we waarden toevoegen nog niet bestaat, wordt deze gemaakt.

$boeken ["sleutel"]= waarde; // toegevoegd aan de array
// $boekwaarde
// waarde met sleutel
$boeken = waarde1; /* toegevoegd aan de array
waarde waarde1 s
toets 13, omdat
maximale sleutel y
we waren met 12 */
?>

Om een ​​specifiek array-element te wijzigen, hoeft u er alleen maar een nieuwe waarde aan toe te wijzen en aan de bijbehorende sleutel. U kunt de sleutel van een element niet wijzigen. U kunt alleen een element (sleutel/waarde-paar) verwijderen en een nieuw element toevoegen. Om een ​​array-element te verwijderen, moet u de functie unset() gebruiken.

$boeken = array("php" =>
"PHP-gebruikersgids" ,
12 => waar);
$boeken =
"Boek over Perl" ; // toegevoegd element
// met sleutel (index)
// 13 is gelijkwaardig
// $boeken =
// "Boek over Perl";
$boeken["lisp"] =
123456 ; /* Hiermee wordt een nieuwe aan de array toegevoegd