Szukaj…


Alternatywna składnia dla struktur kontrolnych

PHP zapewnia alternatywną składnię dla niektórych struktur kontrolnych: if , while , for , foreach i switch .

W porównaniu do normalnego składni różnicą jest to, że klamra otwór jest zastąpiony przez jelita ( : ) i klamra zamykająca otrzymuje endif; , w endwhile; , endfor; , endforeach; lub endswitch; odpowiednio. Poszczególne przykłady znajdują się w temacie dotyczącym alternatywnej składni struktur kontrolnych .

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

Wiele instrukcji elseif przy użyciu krótkiej składni:

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 - Struktury kontrolne - Alternatywna składnia

podczas

while pętla iteracje przez blok kodu, tak długo, jak określony warunek jest spełniony.

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

Wyjście: 123456789

Aby uzyskać szczegółowe informacje, zobacz temat Pętle .

robić

pętla do-while while wykonuje najpierw blok kodu raz, w każdym przypadku, a następnie iteruje ten blok kodu, o ile spełniony jest określony warunek.

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

Output: `12345678910`

Aby uzyskać szczegółowe informacje, zobacz temat Pętle .

iść do

Operator goto pozwala na przejście do innej sekcji programu. Jest dostępny od PHP 5.3.

Instrukcja goto to goto, po której następuje pożądana etykieta docelowa: goto MyLabel; .

Cel skoku jest określony etykietą, a następnie dwukropkiem: MyLabel:

Ten przykład wydrukuje Hello World! :

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

ogłosić

declare służy do ustawienia dyrektywy wykonawczej dla bloku kodu.

Uznawane są następujące dyrektywy:

Na przykład ustaw tiki na 1:

declare(ticks=1);

Aby włączyć tryb ścisłego typu, declare deklaracji jest używana z deklaracją strict_types :

declare(strict_types=1);

Jeśli inaczej

Instrukcja if w powyższym przykładzie pozwala na wykonanie fragmentu kodu, gdy warunek jest spełniony. Gdy chcesz wykonać fragment kodu, gdy warunek nie jest spełniony, rozszerz if else .

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

PHP Manual - Struktury kontrolne - Pozostałe

Operator trójskładnikowy jako skrócona składnia dla if-else

Operator trójskładnikowy ocenia coś w oparciu o spełnienie lub nie spełnienie warunku. Jest to operator porównania i często używany jest do wyrażenia prostego warunku „if-else” w krótszej formie. Pozwala szybko przetestować warunek i często zastępuje wieloliniową instrukcję if, dzięki czemu kod jest bardziej zwarty.

Oto przykład z góry, w którym użyto wyrażenia potrójnego i wartości zmiennych: $a=1; $b=2;

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

Wyjścia: a is NOT greater than b .

obejmują i wymagają

wymagać

require jest podobne do include , z tą różnicą, że w przypadku niepowodzenia E_COMPILE_ERROR błąd krytyczny na poziomie E_COMPILE_ERROR . Gdy require nie powiedzie się, skrypt zostanie zatrzymany. Gdy include nie powiedzie się, nie zatrzyma skryptu i wyemituje tylko E_WARNING .

require 'file.php';

PHP Manual - Struktury kontrolne - Wymagaj

zawierać

Instrukcja include zawiera i ocenia plik.

./variables.php

$a = 'Hello World!';

. / main.php`

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

Zachowaj ostrożność przy takim podejściu, ponieważ jest to zapach kodu , ponieważ dołączony plik zmienia ilość i zawartość zdefiniowanych zmiennych w danym zakresie.


Możesz także include plik, który zwraca wartość. Jest to niezwykle przydatne do obsługi tablic konfiguracyjnych:

Configuration.php

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

main.php

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

Takie podejście zapobiegnie zanieczyszczeniu dołączonego pliku przez bieżący zakres zmienionymi lub dodanymi zmiennymi.

PHP Manual - Struktury kontrolne - Uwzględnij


Uwzględnij i wymagaj może również służyć do przypisywania wartości zmiennej, gdy zwracane są przez plik.

Przykład:

plik include1.php:

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

    return $a;
?>

plik index.php:

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

powrót

Instrukcja return zwraca kontrolę programu do funkcji wywołującej.

Po wywołaniu return z funkcji wykonywanie bieżącej funkcji zakończy się.

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

Po uruchomieniu returnEndsFunctions(); dostaniesz wynik Zostanie This is executed ;

Kiedy return jest wywoływane z funkcji z argumentem i, wykonywanie bieżącej funkcji zakończy się, a wartość argumentu zostanie zwrócona do funkcji wywołującej.

dla

for pętle są zazwyczaj stosowane, gdy masz kawałek kodu, który chcesz powtórzyć daną liczbę razy.

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

Wyjścia: 123456789

Aby uzyskać szczegółowe informacje, zobacz temat Pętle .

dla każdego

foreach to konstrukcja, która umożliwia łatwe iterowanie tablic i obiektów.

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

Wyjścia: 123 .

Aby użyć pętli foreach z obiektem, należy zaimplementować interfejs Iterator .

Podczas iteracji po tablicach asocjacyjnych:

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

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

Wyjścia: color: red

Aby uzyskać szczegółowe informacje, zobacz temat Pętle .

jeśli inaczej

elseif

elseif łączy if i else . if oświadczenie jest przedłużony do wykonywania innego oświadczenia w przypadku oryginału if wyrażenie nie jest spełniony. Ale wyrażenie alternatywne jest wykonywane tylko wtedy, gdy spełnione jest wyrażenie warunkowe elseif .

Poniższy kod wyświetla albo „a jest większy niż b”, „a jest równy b” lub „a jest mniejszy niż 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";
}

Kilka innych oświadczeń

Można użyć wielu instrukcji elseif w ramach tej samej instrukcji 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";
}

gdyby

Konstrukcja if pozwala na warunkowe wykonywanie fragmentów kodu.

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

PHP Manual - Struktury kontrolne - If

przełącznik

Struktura switch pełni tę samą funkcję, co seria instrukcji if , ale może wykonać zadanie w mniejszej liczbie wierszy kodu. Testowana wartość, zgodnie z definicją w instrukcji switch , jest porównywana pod kątem równości z wartościami w każdej z instrukcji case , aż do znalezienia dopasowania i wykonania kodu w tym bloku. Jeśli nie znaleziono pasującej instrukcji case , kod w default bloku jest wykonywany, jeśli istnieje.

Każdy blok kodu w instrukcji case lub default powinien kończyć się instrukcją break . To zatrzymuje wykonywanie struktury switch i natychmiast wykonuje kod. Jeśli instrukcja break zostanie pominięta, kod instrukcji następnego case jest wykonywany, nawet jeśli nie ma zgodności . Może to spowodować nieoczekiwane wykonanie kodu, jeśli instrukcja break zostanie zapomniana, ale może być również przydatna, case wiele instrukcji case musi współużytkować ten sam kod.

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

Oprócz testowania stałych wartości konstrukcję można również zmusić do przetestowania instrukcji dynamicznych, podając wartość logiczną do instrukcji switch i dowolne wyrażenie do instrukcji case . Pamiętaj, że używana jest pierwsza pasująca wartość, więc następujący kod wyświetli „więcej niż 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;
}

Aby zapoznać się z możliwymi problemami z luźnym pisaniem podczas korzystania z konstrukcji switch , zobacz Przełączanie niespodzianek



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow