Kurs PHP - Część 2
Instrukcja warunkowa if/else
Czasem chcemy, żeby fragment kodu wykonał się tylko pod jakimś warunkiem. Stosuje
się wtedy instrukcję if:
| |
if($a>$b)
echo("$a > $b");
|
|
Jeżeli wartość $a jest większa od $b wyświetli się napis "$a jest
większe od $b". Warunek jest spełniony, jeżeli wyrażenie w nawiasie
ma wartość różną od zera. Jeżeli będzie to np. pusta zmienna
warunek nie jest spełniony. Polecenie w następnej lini zostanie
wykonane, jeżeli warunek jest spełniony. Aby warunek objął kilka poleceń, stosuje się
nawiasy klamrowe:
| | if($a>$b)
{
echo("$a jest większe od $b");
$a++;
} |
|
Jeżeli chcemy wykonać inny fragment kodu gdy warunek nie jest spełniony,
stosujemy instrukcję else:
| | if($a>$b)
echo("$a > $b");
else
echo("$a <= $b"); |
|
Aby uzyskać bardziej złożony warunek można zastosować operatory logiczne
i (&&) oraz lub (||):
| | if($a>$b||$a<2)
echo("$a jest większe od $b,
lub mniejsze od 2"); |
|
Operatory logiczne
Aby połączyć kilka warunków można użyć specjalnych operatorów logicznych.
Są to:
|| - alternatywa (lub)
&& - koniunkcja (i)
! - negacja (zaprzeczenie)
Przykład:
| | $a=1;
$a=3;
if($a==1&&$b==2) echo("A");
if($a==1||$b==2) echo("B");
if(!($a==1&&$b==2)) echo("C"); |
|
Wynikiem tego skryptu będzie napis "BC". Operator zaprzeczenia można też dla wygody połączyć
z operatorem porównania, np:
| | $a=1;
if($a!=2) echo("Warunek spełniony");
|
|
Pętla while
Aby fragment kodu wykonać wiele razy stosuje się pętle. PHP obsługuje 3 rodzaje pętli:
while, do..while i for. Najprostszą z nich jest pętla while:
| | $a=0;
while($a<5)
{
echo("$a ");
$a++;
}
|
|
W pętli while najpierw sprawdzany jest warunek (w tym wypadku $a<5). Jeżeli jest spełniony, pętla wykonuje się i wraca do sprawdzenia
warunku. Jeżeli warunek nie jest spełniony, wykonanie pętli kończy
się. Powyższy skrypt wyświetli liczby od 0 do 4.
Pętla do..while
| | $a=0;
do
{
echo("$a ");
$a++;
}while($a<5); |
|
Pętla do..while różni się od pętli while tym, że najpierw wykonuje
się pętla, a dopiero potem sprawdzany jest warunek. Oznacza to,
że pętla zawsze wykona się co najmniej 1 raz. Powyższy skrypt
zadziała tak samo jak poprzedni. Różnica będzie widoczna w poniższych
pętlach:
| | $a=6;
do
{
echo("$a ");
$a++;
}while($a<5); /* ta pętla wykona
się 1 raz */
$a=6;
while($a
<5)
{
echo("$a ");
$a++;
} /* instrukcje w tej pętli
nie zostaną wykonane */
|
|
Pętla for
Wykonanie pętli for:
| | for($a=0;$a<5;$a++)
{
echo("$a ");
} |
|
Odpowiada wykonaniu pętli:
| | $a=0;
while($a<5)
{
echo($a);
$a++;
} |
|
Można to też zapisać jako
| | for($a=0;$a<5;echo("$a "), $a++); |
|
Instrukcje break i continue
Wykonanie pętli można w każdym momencie zakończyć. Służy do tego instrukcja
break:
| | $a=0;
while($a<10)
{
$a++;
if($a==3)
break;
} |
|
Ta pętla nie wykona się 10 razy - gdy $a osiągnie wartość 3, wykonanie
pętli zostanie przerwane. Można też przejść do następnego powtórzenia
- służy do tego instrukcja continue:
| | $a=0;
while($a<10)
{
$a++;
if($a==3)
continue;
echo("aaa"); /* ta instrukcja
wykona się tylko gdy $a
nie jest równe 3 */
} |
|
Instrukcja switch
Czasem zmienna może mieć jedną z kilku wartości, w zależności odktórych należy
podjąć odpowiednią akcję. Można to zrobić stosując instrukcję
if:
| | if($a==1)
{
echo("a jest równe 1");
}
if($a==3)
{
echo("a jest równe 3");
}
if($a==11)
{
echo("a jest równe 11");
} |
|
Dużo wygodniejsze jest zastosowanie instrukcji switch:
| | switch($a)
{
case 1:
echo("a jest równe 1");
break;
case 3:
echo("a jest równe 3");
break;
case 11:
echo("a jest równe 11");
break;
} |
|
|