Alternativ syntax för kontrollstrukturer

Från Wiki.linux.se
Version från den 18 augusti 2024 kl. 07.01 av Admin (diskussion | bidrag) (→‎Sidslut)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

Alternativ syntax för kontrollstrukturer

(PHP 4, PHP 5, PHP 7, PHP 8)

PHP erbjuder en alternativ syntax för några av sina kontrollstrukturer; nämligen `if`, `while`, `for`, `foreach` och `switch`. I varje fall innebär den alternativa syntaxen att byta ut öppningsklammern mot ett kolon (:) och stängningsklammern mot `endif;`, `endwhile;`, `endfor;`, `endforeach;` eller `endswitch;` respektive.

<?php if ($a == 5): ?>
A är lika med 5
<?php endif; ?>

I ovanstående exempel är HTML-blocket "A är lika med 5" inbäddat inom ett `if`-uttalande skrivet i alternativ syntax. HTML-blocket visas endast om $a är lika med 5.

Den alternativa syntaxen gäller också för `else` och `elseif`. Följande är en `if`-struktur med `elseif` och `else` i det alternativa formatet:

<?php
if ($a == 5):
    echo "a är lika med 5";
    echo "...";
elseif ($a == 6):
    echo "a är lika med 6";
    echo "!!!";
else:
    echo "a är varken 5 eller 6";
endif;
?>

Not

Det stöds inte att blanda syntaxer inom samma kontrollblock.

Varning

All utdata (inklusive blanksteg) mellan ett `switch`-uttalande och det första `case` kommer att resultera i ett syntaxfel. Till exempel är detta ogiltigt:

<?php switch ($foo): ?>
    <?php case 1: ?>
    ...
<?php endswitch; ?>

Medan detta är giltigt, eftersom den slutande radbrytningen efter `switch`-uttalandet anses vara en del av det avslutande `?>` och därmed inte något utskrivet mellan `switch` och `case`:

<?php switch ($foo): ?>
<?php case 1: ?>
    ...
<?php endswitch; ?>

Se även


Sidslut

Orginalhemsidan på Engelska : https://www.php.net/manual/en/control-structures.alternative-syntax.php
PHP
Språkreferens
Språkreferens#Kontrollstrukturer