|
PHP #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 jest większe od $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 jest większe od $b");
else
echo("$a jest mniejsze lubrówne $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:
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 shile 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;
}
Grzegorz 'Ygreg' Plebanski
ygreg@and.pl
http://ygreg.and.pl
|