21 (206)




PHP & MySQL w bajo.pl - Kurs PHP



































 Strona główna
 Newsy
 Kurs PHP
 Kurs MySQL
 Skrypty
 Download
 Księga gości
 O mnie







 Kurs PHP
 Kurs MySQL







Skrypty:
 Graficzny licznik
 Sonda poll
 Statystyki istat
 BlazeBoard PL
 Phorum 3.2.11

inne ->   








Statystyki:














Kurs PHP 















INSTRUKCJA IF
Instrukcja if wykonuje podany kod, jeżeli warunek umieszczony w nawiasach jest prawdziwy (zwraca wartość true). Podstawowa składnia warunku if wygląda następująco:





<?if (warunek)
   # kod, który ma zostać wykonany w przypadku spełnienia warunku
?>






Nawias okrągły może występować bezpośrednio po słownie kluczowym if lub po spacji (tak jak w powyższym przykładzie); jest to tylko kwestia gustu programisty i czytelności kodu:






<?if(warunek)
   # kod, który ma zostać wykonany w przypadku spełnienia warunku
?>





Spójrzmy zatem na przykład instrukcji, która sprawdza, czy zmienna $test jest liczbą większą od zera:





<?$test = 19;
if($test > 0)
   echo("Podano liczbę większą od zera");
?>





I tak powyższy kod zwróci:




Podano liczbę większą od zera





Spójrzmy na taki przykład:





<?$test = -5;
if($test > 0)
echo("Podano liczbę większą od zera");
echo("Kolejna linia");
?>






Wydawałoby się, że w przypadku niespełnienia warunku taki kod nie zwróci niczego (wartość false) albo w przypadku spełnienia wydrukuje dwie linie. Jednak jest inaczej. Linia 'Kolejna linia' zawsze zostanie wydrukowana, ponieważ przy takim zapisie nie należy do instrukcji wykonywanych zależnie od warunku. Aby możliwe było wykonanie więcej niż jednej instrukcji, po warunku należy taki kod oznaczyć jako blok instrukcji stanowiących jedną całość za pomocą nawiasów klamrowych ({ i }).

Struktura takiego bloku wygląda następująco:





{
  # linia kodu
  # ...
  # linia kodu
}





Wszystko, co znajduje się pomiędzy nawiasami klamrowymi, stanowi jeden blok instrukcji. Jeżeli przy występowaniu więcej niż jednej linii kodu nie zastosowałbyś ograniczników bloku (czyli nawiasów klamrowych), w przypadku spełnienia warunku wykonywana byłaby tylko pierwsza linia kodu, a pozostałe zostałyby wydrukowane niezależnie od zadanego warunku.
Spójrzmy zatem na udoskonaloną wersję naszego przykładu:




<?$test = -5;
if($test > 0) {
echo("Podano liczbę większą od zera");
echo("Kolejna linia");
}
?>





Teraz powyższy kod nie zwróci niczego, ponieważ zmienna testowa jest mniejsza od zera. Natomiast następujący kod:




<?$test = 19;
if($test > 0)
echo("Podano liczbę większą od zera");
echo("Kolejna linia");
?>





zwróci:




Podano liczbę większą od zera
Kolejna linia





Aby zobaczyć, jak warunek if wygląda w praktyce, przypomnijmy sobie formularz do podawania imienia kota z rozdziału o zmiennych:




<form action=imie_kota.php method=post>
Podaj imię swojego kota: <input type=text name=imie_kota>
<input type=submit value=wyślij>
</form>





Spróbujmy teraz napisać skrypt, który będzie drukował powyższy formularz, jeżeli nie podano imienia kota (lub przy wywoływaniu skryptu, jeśli zmienna jest pusta). Najpierw zbudujmy strukturę poprawnej stront HTML zawierającej formularz:




<html>
<head>
<title>Twój kot i jego imię</title>
</head>
<body>
<form action=imie_kota.php method=post>
Podaj imię swojego kota: <input type=text name=imie_kota>
<input type=submit value=wyślij>
</form>
</body>
</html>





Czas teraz na dopisanie instrukcji if, która sprawdzi, czy imie kota zostało podane i czy trzeba wydrukować formularz. Posłużmy się tutaj warunkiem $imie_kota == "":




<html>
<head>
<title>Twój kot i jego imię</title>
</head>
<body><?
if($imie_kota == "") {
echo("<form action=imie_kota.php method=post>");
echo("Podaj imię swojego kota: <input type=text name=imie_kota>");
echo("<input type=submit value=wyślij>");
echo("</form>");
}
?>
</body>
</html>




Powyższy przykład drukuje formularz w przypadku, kiedy imię kota nie zostało podane. Ale jak wydrukować stronę z informacją już po wysłaniu formularza? Można to zrobić w taki oto, trochę niezręczny sposób:




<html>
<head>
<title>Twój kot i jego imię</title>
</head>
<body><?
# nie podano imienia
if($imie_kota == "") {
echo("<form action=imie_kota.php method=post>");
echo("Podaj imię swojego kota: <input type=text name=imie_kota>");
echo("<input type=submit value=wyślij>");
echo("</form>");
}
# podano imię
if($imie_kota != "") {
echo("Twój kot nazywa się... $imie_kota");
}
?>
</body>
</html>





   Klauzula else i elseif

Klauzula else oznacza "wykonaj, jeżeli warunek nie był wykonany". To właśnie jej brakowało w poprzednim przykładzie:





<html>
<head>
<title>Twój kot i jego imię</title>
</head>
<body><?
if($imie_kota == "") {
echo("<form action=imie_kota.php method=post>");
echo("Podaj imię swojego kota: <input type=text name=imie_kota>");
echo("<input type=submit value=wyślij>");
echo("</form>");
}
else
{
echo("Twój kot nazywa się... $imie_kota");
}
?>
</body>
</html>





Klauzula elseif oznacza natomiast "wykonaj, jeżeli warunek nie był spełniony, oraz jeżeli...". Można w ten sposób sprawdzać podane imię kota i wykonywać różne czynności dla różnych imion:





<html>
<head>
<title>Twój kot i jego imię</title>
</head>
<body><?
if($imie_kota == "") {
echo("<form action=imie_kota.php method=post>");
echo("Podaj imię swojego kota: <input type=text name=imie_kota>");
echo("<input type=submit value=wyślij>");
echo("</form>");
}
elseif ($imie_kota == "Mruczek") {
echo("Mruczek?");
}
elseif ($imie_kota == "Ramzes") {
echo("Ramzes!");
}
else
{
echo("Twój kot nazywa się... $imie_kota");
}
?>
</body>
</html>





Powyższy przykład jest już znacznie bardziej rozbudowany. Potrafi różnie reagować na podane imiona. Taki sam efekt możesz osiągnąć stosując po klauzuli else instrukcję if:




<html>
<head>
<title>Twój kot i jego imię</title>
</head>
<body><?
if($imie_kota == "") {
echo("<form action=imie_kota.php method=post>");
echo("Podaj imię swojego kota: <input type=text name=imie_kota>");
echo("<input type=submit value=wyślij>");
echo("</form>");
}
else if ($imie_kota == "Mruczek") {
echo("Mruczek?");
}
else if ($imie_kota == "Ramzes") {
echo("Ramzes!");
}
else
{
echo("Twój kot nazywa się... $imie_kota");
}
?>
</body>
</html>





Zastosowany sposób zapisu jest różny przywarunkach drugim i trzecim, ale nie wpływa to na ich działanie.

   Alternatywny sposób zapisu
PHP udostępnia jeszcze jeden sposób zapisu bloków w warunkach:




<? if (warunek): ?>
blok HTML
<? endif; ?>





Blok rozpoczyna się znakiem :, a kończy instrukcją endif.
Taki sposób zapisu może bardzo ułatwić drukowanie kodu HTML, ponieważ bez używania instrukcji echo() można go umieścić między warunkami:





<html>
<head>
<title>Twój kot i jego imię</title>
</head>
<body><? if($imie_kota == ""): ?>
<form action=imie_kota.php method=post>
Podaj imię swojego kota: <input type=text name=imie_kota>
<input type=submit value=wyślij>
</form>
<? elseif ($imie_kota == "Mruczek"): ?>
Mruczek?
<? elseif ($imie_kota == "Ramzes"): ?>
Ramzes!
<? else: ?>
Twój kot nazywa się inaczej niż Mruczek i Ramzes :((
<? endif; ?>
</body>
</html>





Można również zapisać powyższy kod w taki sposób:





<html>
<head>
<title>Twój kot i jego imię</title>
</head>
<body><?
if($imie_kota == ""):
echo("<form action=imie_kota.php method=post>");
echo("Podaj imię swojego kota: <input type=text name=imie_kota>");
echo("<input type=submit value=wyślij>");
echo("</form>");
elseif ($imie_kota == "Mruczek"):
echo("Mruczek?");
elseif ($imie_kota == "Ramzes"):
echo("Ramzes!");
else:
echo("Twój kot nazywa się... $imie_kota");
endif;
?>
</body>
</html>









TEMATY:
 Instrukcje warunkowe
 Instrukcja IF
 Operatory dla warunków
 Instrukcja SWITCH
 Spis treści
























© copyright 2001 by Bartosz Maciaszek. Wszelkie prawa zastrzeżone.










Wyszukiwarka

Podobne podstrony:
(21 Potencjał zakłócający i anomalie)
980928 21
173 21 (10)
2 21 SPAWANIE MIEDZI I STOPÓW MIEDZI (v4 )
kilka ciekawostek o 206
USTAWA z dnia 21 marca 1985 r o drogach publicznych
commercial howto 21
Nyx Password Storage 1 21 readme

więcej podobnych podstron