Menu
- Aktualności
- Mój startup Nowy odcinek
- Blogi ekspertów
- Projektowanie WWW
- Planowanie
- Hosting i domeny
- Organizacja i nawigacja
- Webdesign i grafika
- Warsztat - programy
- Tutoriale Photoshop
- Programowanie i tworzenie
- XHTML, HTML i CSS
- JavaScript, DOM i AJAX
- jQuery
- PHP i SQL
- Flash i ActionScript
- Dostępność i WAI
- Promowanie stron
- Pozycjonowanie
- Reklama i marketing
- Monitoring i statystyki
- Publicystyka
- Artykuły ogólne
- Społeczności
- Praca i zarabianie
- Wywiady
- Standardy sieciowe
- Zasoby
- Kursy
- Recenzje książek
- Linki
Dla webmastera
Kursy
Instrukcje
Instrukcje
W programowaniu istnieją dwa typy instrukcji: instrukcje warunkowe i iteracyjne (inaczej pętle). Głównie na nich opiera się programowanie większych aplikacji.
Instrukcje warunkowe
Instrukcje warunkowe to takie, które decydują o tym, czy dana część skryptu ma być wykonana, czy nie. Przypuśćmy, że na przykład aby obliczyć podatek VAT na jakiś towar musisz znak jego rodzaj i znając go możesz ocenić czy VAT jest równy 0%, 7% czy też 22%. Musisz się wtedy zapytać programu jaki jest tym i przyporządkować mu daną stawkę VAT. A teraz już o samych instrukcjach warunkowych.
Pierwszą instrukcją warunkową jest operator trójskładnikowy. Służy on do konstruowania prostych warunków, składających się z jednej operacji. Przykład użycia ten instrukcji:
$liczba = 1 > 3 ? 1 : 3;
Powyższy przykład nada zmiennej $liczba wartość 3.
Drugą instrukcją warunkową i chyba najczęściej używaną jest if(). Jeżeli zapytanie logiczne znajdujące się w nawiasie jest prawdziwe (wartość równa jest TRUE) to wykonywana jest jedna instrukcja lub kilka instrukcji umieszczonych w nawiasach klamrowych ({ }) oznaczających początek i koniec operacji związanych z zapytaniem. W konstruowaniu zapytań przydatne są następujące znaki:
| == | sprawdza czy dwie liczby, łańcuchy itd. są sobie równe |
| != | sprawdza czy dwie liczby, łańcuchy itd. są od siebie różne |
| > | sprawdza czy liczba [łańcuch itd.] po lewej stronie jest większa od prawej |
| < | sprawdza czy liczba [łańcuch itd.] po lewej stronie jest mniejsza od prawej |
| >= | sprawdza czy liczba [łańcuch itd.] po lewej stronie jest większa bądź równa prawej |
| <= | sprawdza czy liczba [łańcuch itd.] po lewej stronie jest mniejsza bądź równa prawej |
| ! | przeczenie (czy wyrażanie nie spełnia zapytania) |
| && | "i" logiczne (przy większej liczbie zapytań) |
| || | "lub" logiczne (przy większej liczbie zapytań) |
Oto przykład prostego zapytania:
| $tekst = "tekst"; $liczba = 1; $liczba2 = 2; if ($tekst=="tekst"&&($liczba==2||$liczba2==2)) echo "Tak!"; |
Powyższy skrypt wyświetli "Tak!".
Kolejną instrukcją warunkową jest else, używana w zapytaniach razem z if (). Załóżmy, że zapytanie zwraca wartość FALSE. Wtedy nasz skrypt powinien np. wyświetlić napis "Nie!".
| $tekst = "tekst"; $liczba = 1; $liczba2 = 2; if ($tekst=="tekst"&&($liczba==2||$liczba2==2)) { echo "Tak!"; } else echo "Nie!"; |
Jak pewnie zauważyłeś używając else trzeba używać nawiasów klamrowych nawet przy jednej operacji. Oczywiście, aby skrypt wykonał więcej operacji po instrukcji else należy użyć nawiasów klamrowych.
Ostatnią instrukcją z konstruujących zapytania if() jest elseif(). Służy ona do sprawdzenia, czy gdy poprzednie zapytanie zwróciło FALSE, to czy to zapisane w nawiasach zwraca TRUE. Oto przykład:
| $l1 = 1; if ($l1<0) { echo "$l1 jest mniejsze od zera!"; } elseif ($l1>0) { echo "$l1 jest większe od zera!"; } else echo "$l1 jest równe zeru!"; |
Oczywiście konstruując zapytania w elseif() można używać takich samych znaków co przy if ().
Kolejnym rodzajem instrukcji warunkowych jest konstrukcja switch (). Oto jej budowa:
switch (wyrażenie) {
case wartość: instrukcja1;
instrukcja2;
instrukcjan;
break;
case inna_wartość: instrukcja1;
instrukcja2;
instrukcjan;
break;
default: instrukcja_domyślna;
}
Switch sprawdza czy wyrażenie jest równe podanym po instrukcji case wartościom. Jeżeli jest, to wykonuje podane operacje aż do instrukcji break. Jeżeli nie to wykonuje default. Istnienie intrukcji default jest opcjonalne. Taka konstrukcja jest potrzebna gdy sprawdzamy czy jakieś wyrażenie jest równe któremuś z podanych wartości, np. przy sprawdzaniu stawki podatku VAT.
Instrukcje iteracyjne
Są to inaczej po prostu pętle i służą do wielokrotnego powtarzania operacji. Pierwszym rodzajem pętli jest for (). Wewnątrz nawiasów posiada 3 argumenty: początkową wartość, warunek który musi spełniać i instrukcje która zawsze się powtarza, najczęściej inkrementacje (dodawanie do zmiennej 1) bądź też dekrementację (odejmowanie od zmiennej 1). Wszytkie te argumenty oddziela się średnikami! Oto przykład pętli:
for ($i=1;$i<=40;$i++) echo "To jest przykład użycia pętli for()";
Oczywiście używając nawiasów klamrowych w pętli można wykonać więcej niż jedną opercję.
Kolejnym rodzajem instrukcji iteracyjnej jest while (). Jest to pętla wykonywana do czasu, aż wyrażenie w nawiasie nie będzie równe TRUE. Ważne jest tutaj to, że pętla ta sprawdza to przed wykonaniem pętli, co może spowodować, że instrukcje zawarte w pętli nigdy nie zostaną wykonane! Oto przykład wykorzystania tej pętli:
| $i = false; $k = 0; while (!$i) { ++$k; echo "Oto pętla while()"; if ($k==3) $i = true; } |
Ostatnią z pętli jest do while (). Różni się ona tym od while (), że sprawdza wyrażenie w nawiasie dopiero po wykonaniu operacji, przez co zostanie wykonana przynajmniej raz. Oto przykład użycia tej pętli:
| $i = false; $k = 0; do { ++$k; echo "Oto pętla do while()"; if ($k==3) $i = true; } while (!$i); |
Należy zwrócić w tej pętli uwagę, że po while () musi (!) być średnik.
Istnieją jeszcze dwie instrukcje operujące na pętlach. Są to, używana w switch (), instrukcja break i, nowa, continue. Pierwsza służy do przerwania pętli, a druga do pominięcia następnych operacji i przejścia od razu do następnej iteracji pętli.
No i na koniec tego rozdziału jeszcze dwie instrukcje sterujące skryptem. Są to die() i exit, które kończą działania skryptu. Często używa ich się, gdy skrypt może pokazywać błędy, a nie chce się wyświetlać brzydkich komunikatów parsera, tylko własnych. Instrukcje te używane są między innymi w klasach obsługujących bazy danych.

