YGREG.COM - Kurs PHP - Część 2 

29.07.2004
Nowa oferta hostingowa.

29.07.2004
Kurs XPath.

13.10.2002
Poprawiony problem z oznaczaniem przeczytanych wiadomości na forum.

13.06.2002
PHP z Zend Engine 2 już dostępne!

17.02.2002
Zmiany w organizacji serwisu.








Początek strony

(C)opyright 1997-2007
by Grzegorz Plebański
INDEX I ARTYKUŁY I SKRYPTY I DOWNLOAD

Dodaj stronę
do ulubionych

Artykuły i kursy
   PHP
   XML
   CGI
   HTML
   Inne

Skrypty PHP
   Komunikacja
   Księgi gości
   Statystyki
   Głosowania
   Bannery
   Inne
Skrypty CGI

Download



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



Grzegorz 'Ygreg' Plebański
ygreg@ygreg.com
http://www.ygreg.com