background image

 

 

 

 

Programowanie  PHP 

 
 
Materiały: 

1.  PHP5, Apache i MySQL. Od podstaw, Helion 2005 

2.  PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne, Helion 2004 

3.  PHP w mgnieniu oka, Helion 2005 

4.  http://www.leon.w-wa.pl/texts/kurs/index.php 

5.  http://php.webhelp.pl/kursy/php/index.php?roz=php  

6.  http://kursy.skryptoteka.pl/kurs.php?kurs=php&strona=0  

 

 

Temat 1. – Przygotowanie środowiska, prezentacja możliwości PHP 

 

Ćwiczenie 1 – instalacja środowiska wytwórczego 

1.  Proszę zainstalować Easy PHP - http://www.easyphp.org/ - jest to zestaw aplikacji: 

-  Baza danych MySQL 

-  Serwer WWW Apacze 

-  Parser php  

2.  Proszę zainstalować program HTML-Kit - http://www.chami.com/html-kit/download/ 

- umożliwiający tworzenie stron internetowych. 

3.  Proszę sprawdzić możliwości aplikacji. 

 

 

Ćwiczenie 2 – utworzenie prostych stron php 

1.  Proszę utworzyć przykładową stronę php 

 <html> 
 <head><title>Pierwsza strona w PHP</title></head> 

 <body> 
 <b> 

 <?php print "Strona w PHP działa!"; ?> 
 </b> 
 </body>  

 </html> 

2.  Otwórz stronę za pomocą przeglądarki – czy wyświetla się poprawnie? 

3.  Umieść stronę w katalogu www programu EasyPhp (Apacha). 

4.  Wpisując w przeglądarkę http://localhostścieżkadostrony sprawdź działanie strony 

5.  Analogicznie utwórz i sprawdź działanie strony 

background image

     

<html> 

     <head> 
     <title>Moja druga strona w PHP</title> 
     </head> 

     <body>      
     Bieżąca data: <? print (Date("l F d, Y")); ?>      

     </body> 
     </html> 

6.  Zapisz wyświetloną stronę (jako html), sprawdź czy kod jest identyczny z 

poprzednim. 

 

 

Ćwiczenie 3 – prezentacja możliwości PHP 

1.  Dodaj stronę powodującą wyświetlenie formularza 

 

<form > 

 

Twoje imie: <input type="text" name="osoba"> 

 <br/> 
 

<input type="submit" value="Powitanie"> 

 </form> 

2.  Sprawdź, co następuje po kliknięciu na przycisk Powitanie. 

3.  Przekształć pierwszą linie na  

       <form method="POST" action="witaj.php"> 

      Sprawdź, co następuje po kiknięciu na przycisk Powitanie. 

4. 

Dodaj kod w odpowiednim skrypcie php 

          <?php 
 

print "Witaj, "; 

 print 

$_POST['osoba']; 

 print 

"!"; 

   

?> 

5.  Sprawdź działanie strony. 

6. Spróbuj zmodyfikować stronę i skrypt tak, aby możliwe było wyświetlanie imienia i 

nazwiska podawanych w 2 różnych polach tekstowych. 

 
 
 
 
 
 
 
 
 
 
 
 

background image

Temat 2. Praca z tekstem, liczbami i zmiennymi 

 
 
Ćwiczenie 1 – literały i zmienne 
 

1.  Sprawdź działanie poniższych literałów dla cudzysłowu podwójnego odpowiednio 

wstawiając je w kod. 

Literał Znaczenie 
\n Nowa 

linia 

\r Powrót 

karetki 

\t Tabulator 

 

\\ \ 
\$ $ 
\" " 

 

2.  Wykorzystując literały utwórz stronę wyświetlającą Twoje dane: imię, nazwisko, 

adres, zainteresowania w kolejnych wierszach z odpowiednim odstępem pomiędzy 

etykietami a danymi. W cudzysłowie pojedynczym umieść wytłuszczonym drukiem 

(<b>tekst</b>) swoje motto życiowe.  

3.  Spowoduj niewyświetlenie tekstu motta poprzez użycie komentarza - // (dla jednej 

linii) lub /* tekst */ (blokowy). 

4.  Dodaj deklarację zmiennej 

$osoba = ”Adam”;

 

   

Dodaj instrukcję wyświetlenia tekstu „Mam na imię ” z identyfikatorem zmiennej w  

      nawiasie zarówno pojedynczym jak i podwójnym. Jaka jest różnica? 

5.  Dodaj do wcześniejszego tekstu tekst „ a nazwisko Kostrzycki” przy użyciu operatora 

łączenia napisów – „.” 

 
 

Ćwiczenie 2 – wyświetlanie dokumentów 

1.  Utwórz dokument poprzez instrukcję drukowania 

print <<<blokDokumentu 

<html> 
<head><title>Menu</title></head> 

<body bgcolor="#fffed9"> 
<h1>Śniadanie</h1> 
<ul> 

  <li> Jajecznica na boczku 
  <li> Sałatka warzywna 

  <li> Zupa mleczna 
</ul> 

</body> 
</html> 

blokDokumentu; 

background image

2.  Zmodyfikuj dokument, aby wyświetlał listę egzaminów, które będziesz mieć w 

bieżącym semestrze.  

 

 

Ćwiczenie 3 – manipulacja na operatorach 

Operatory arytmetyczne

 

Przykład Nazwa 

Wynik 

$a + $b 

Dodawanie 

Suma $a i $b. 

$a - $b 

Odejmowanie  Różnica $a i $b. 

$a * $b 

Mnożenie 

Iloczyn $a i $b. 

$a / $b 

Dzielenie 

Iloraz $a i $b. 

$a % $b 

Modulo 

Reszta z dzielenia $a przez $b. 

 
Operator przypisania 

-  Podstawowym operatorem przypisania jest symbol '='.  

-  Wyrażenie $b = 5 oznacza, że zmienna $b przyjmuje wartość równą 5.  

-  Zmiennej można przypisać także wartość innej zmiennej: $b = 5; $a = $b; - zmienna $a 

przyjmie wartość 5.  

-  Zmiennym można przypisywać nie tylko konkretne wartości, ale też wartości innych 

zmiennych, np.: 

<? 
 $nazwa 

$inna_nazwa 

$trzecia_nazwa 

5

?>

 

 

-  Operator przypisania można łączyć z operatorami arytmetycznymi i operatorem łączenia 

ciągów: 

Przykład Wynik 
$a += 2 

Do zmiennej $a dodane zostanie 2 

$a -= 2 

Od zmiennej $a odjęte zostanie 2 

$a *= 2 

Zmienna $a zostanie pomnożona przez 2 

$a /= 2 

Zmienna $a dodane podzielona przez 2 

$a %= 2 

Zmienna $a przyjmie wartość reszty z dzielenia $a przez 2 

$a .= " dalszy ciąg"  Do zmiennej $a na końcu dodany zostanie ciąg " dalszy ciąg" 

 

 

background image

Operatory porównania 

-  Operatory porównania są niezbędne do korzystania z instrukcji warunkowych  

-  Jeśli wyrażenie jest spełnione zwracana jest wartość TRUE (prawda - 1) lub FALSE (fałsz 

- 0). 

Przykład Nazwa 

Wynik 

$a == $b 

Równy 

Prawda jeśli $a jest równe $b. 

$a === 
$b 

Identyczny Prawda 

jeśli $a jest równe $b i są tego samego typu. 

(tylko PHP4) 

$a != $b 

Nie równe 

Prawda jeśli $a nie jest równe $b. 

$a !== $b  Nie identyczny 

Prawda jeśli $a nie jest równe $b lub nie są tego samego 
typu. (tylko PHP4) 

$a < $b 

Mniejsze 

Prawda jeśli $a jest mniejsze niż $b. 

$a > $b 

Większe Prawda 

jeśli $a jest większe niż $b. 

$a <= $b 

Mniejsze lub 
równe 

Prawda jeśli $a jest mniejsze lub równe $b. 

$a >= $b 

Większe lub 
równe 

Prawda jeśli $a jest większe lub równe $b. 

 

Operator kontroli błędów 

-  Operator kontroli błędów ('@') powoduje, że wyrażenie, przed którym postawiono ten 

znak nie spowoduje wyświetlenia się jakiegokolwiek błędu lub ostrzeżenia. 

<? 

/* Jeden z najczęstszych błędów SQL (za dużo o jeden apostrof) */ 

$res 

= @

mysql_query 

(

"select nazwa, kod from 'lista"

) or 

    die (

"Zapytanie się nie powiodło: błąd to ''"

); 

?>

  

 

Operator wywołania 

-  Operator ten służy do uruchamiania zewnętrznych programów lub poleceń powłoki. 

Wystarczy wpisać polecenie pomiędzy znaki odwróconego apostrofu ('`') aby zostało ono 

wykonane, np. 

<? 

  $wynik 

= `

ls -l /home/

`; 

  echo 

$wynik

?>

 

 

Po uruchomieniu tego skryptu na komputerze o systemie operacyjnym Linux wyświetlona 

zostanie zawartość katalogu /home na serwerze.  

 

 

background image

Operatory inkrementacji i dekrementacji 

-  Służą one do zmniejszenia lub zwiększenia wartości danej zmiennej o 1.  

-  Każdy operator można stosować na 2 sposoby: preinkrementacja/predekrementacja - 

najpierw wartość zmiennej zostanie zmieniona, a później zwrócona, lub 

postinkrementacji/postdekrementacji - najpierw zostanie zwrócona wartość zmiennej, a 

następnie wartość zmiennej zostanie zmieniona. 

Przykład Nazwa 

Wynik 

++$a Preinkrementacja 

Zwiększa $a o jeden, a następnie zwraca $a. 

$a++ 

Postinkrementacja  Zwraca $a, a następnie zwiększa $a o jeden. 

--$a 

Predekrementacja 

Zmniejsza $a o jeden, po czym zwraca $a. 

$a-- Postdekrementacja 

Zwraca 

$a, 

po czym zmniejsza $a o jeden. 

Przykład: 

<?

 

echo 

"<h3>Postinkrementacja</h3>"

;

 

$a 

5

;

 

echo 

"Powinno być 5: " 

$a

++ . 

"<br>\n"

;

 

echo 

"Powinno być 6: " 

$a 

"<br>\n"

;

 

echo 

"<h3>Preinkrementacja</h3>"

;

 

$a 

5

;

 

echo 

"Powinno być 6: " 

. ++

$a 

"<br>\n"

;

 

echo 

"Powinno być 6: " 

$a 

"<br>\n"

;

 

echo 

"<h3>Postdekrementacja</h3>"

;

 

$a 

5

;

 

echo 

"Powinno być 5: " 

$a

-- . 

"<br>\n"

;

 

echo 

"Powinno być 4: " 

$a 

"<br>\n"

;

 

echo 

"<h3>Predekrementacja</h3>;"

;

 

$a 

5

;

 

echo 

"Powinno być 4: " 

. --

$a 

"<br>\n"

;

 

echo 

"Powinno być 4: " 

$a 

"<br>;\n"

;

 

?>

 

 

Operatory logiczne 

-  Operatory logiczne służą do budowania bardziej skomplikowanych instrukcji 

warunkowych - do łączenia kilku warunków w jednej instrukcji. 

Przykład Nazwa Wynik 
$a && $b  AND 

Prawda, jeśli $a i $b są prawdą 

$a || $b 

OR 

Prawda, jeśli $a lub $b są prawdą 

! $a 

NOT 

Prawda, jeśli $a nie jest prawdą 

 

background image

Operator ciągu 

-  Operator ciągu ('.' - kropka) służy do łączenia kilku ciągów w jedną całość. 

<?

 

   $zmienna1 

"Wartość zmiennej \"zmienna2\" to"

;

 

   

$zmienna2 

5

;

 

    echo 

$zmienna1

.

" "

.

$zmienna2

// Powinno się wyświetlić:

 

                                 // "Wartość zmiennej "zmienna2" to 5"

 

?>

 

 
1.  Proszę sprawdzić działanie kodu poniżej 

<? 
  $wynik 

= `

cmd

`; 

  echo 

$wynik

?>

 

 

2.  Wykorzystując polecenie dir wyświetl informacje o bieżącym katalogu. 

3.  Proszę sprawdzić działanie kodu dla operatorów inkrementacji i dekrementacji. 

4.  Proszę napisać kod, który będzie wyliczał przykładowa średnia ocen i ją wypisywał dla 

listy kilku przedmiotów. 

5.  Napisz skrypt powodujący wyświetlenie reszt dzielenia liczby 30 przez kolejne liczby od 

10 do 15.  

6.  Dodaj kod powodujący wyliczenie i wyświetlenie delty dla równania y= 2x

+ 3x + 5  

      Zgodnie z równaniem delta = b

2

 – 4ac. 

 
 
Ćwiczenie 4 – manipulacja na napisach 
 

FUNKCJA OPIS 

PRZYKŁAD 

strlen 

Oblicza długość napisu 

$NIP_długość = strlen($NIP); 

Trim 

Zwraca napis bez spacji z przodu i 
końca napisu 

$NIP = trim($_POST['NIP']); 

strcasecmp  Pomija wielkość znaków napisu 

strcasecmp($_POST['email'] 

printf 

Umożliwia wyświetlanie 
przeformatowanego tekstu 

$cena = 4; $podatek = 0.075 
printf(Koszt dania Zł%.2f', $price * 

(1 + $tax)); 

Jeśli jest użyty w formatowaniu 
napisu za pomocą instrukcji 

powyżej powoduje wyrównanie 
tekstu do prawej 

 

strtolower 

Konwertuje napisy na małe litery 

print strtolower('Audi, VOLVO, 

MERceDES'); 

strtoupper  Konwertuje napisy na duże litery 

 

substr 

Umożliwia pobranie fragmentu 

napisu 

print substr($_POST['login'], 0, 10); 

 

str_replace  Umożliwia zamianę fragmentu 

napisu 

$nowyemail = 'wzr.pl'; 
print 

str_replace('univ.gda.pl',$nowyemail, 
                  'kowalski@univ.gda.pl’); 

ucwords 

Umożliwia przeformatowanie 

tekstu do pisania pierwszych liter 

print ucwords(strtolower('MICHAŁ 

KUCIAPSKI')); 

background image

napisów z dużej a pozostałych z 

małej 

strstr 

Sprawdza, czy jeden ciąg znajduje 
się wewnątrz drugiego i zwraca 
ciąg od momentu wystąpienia 

szukanego ciągu. 

<? 
$email = "prezydent@polska.pl"; 
if(strstr($email, "polska")!==False) 

   echo "Email ma w sobie słowo   
'polska'"; 

?> 

strpos 

Zwraca pozycję występowania 
jednego ciągu w drugim 

 

ereg 

Sprawdzania, czy ciąg tekstowy 

pasuje do wyrażenia regularnego 

<? 

  if(ereg(".*", $ciag)) 
  echo "Znalazłem!"; 
?> 

eregi 

Ignoruje wielkość znaków. 

 

explode 

Zwraca tablicę napisów podzieloną 

względem podanego jako pierwszy 
znak parametru. 

<? 

   $data = "1992/11/19"; 
   $tablica = explode("/", $data); 

?> 

split 

Rozbija tekst za pomocą wyrażeń 
regularnych 

<?   
$tekst = "19/11/1982 01:43:12.10"; 

  $tablica = split("[ /:.]", $tekst); 
?> 

 

1.  Utwórz stronę walidującą, że wpisany NIP składa się z jedenastu znaków i wypisujący 

odpowiedni tekst, wiedząc, że instrukcja sprawdzająca ma postać. Skorzystaj z funkcji 

strlen 

 

     

if (wyrażenie_logiczne) 

      {         
 

 

instrukcje 

 }

 

2.  Zmodyfikuj kod powyżej dodając funkcję trim

3.  Zmodyfikuj stronę dodając pole tekstowe do wpisywania e-mailu. Dodaj kod do skryptu 

sprawdzający jego poprawność – czy występuje @ - funkcja strstr

4.  Dodaj kod do skryptu powodujący wyświetlenie nazwy loginu i adresu serwera, np.: 

 Login: 

alin 

      Serwer: test.pl 

 Funkcje: 

strpos, substr 

5.  Dodaj sprawdzanie czy występuje tekst przed małpą i po niej – funkcja explode

Zmodyfikuj kod tak, aby wyniki wyeliminować funkcje użyte w punkcie wcześniejszym 

(strpos, substr).      

6.  Dodaj na wstępie strony pole dane osobowe. Zmodyfikuj kod skryptu php tak, aby dane 

były wyświetlane zgodnie z konwencją imion i nazwisk – użyj funkcji ucwords

 

background image

Ćwiczenie 5 – zmienne 

-  Nazwy zmiennych zawsze zaczynają się od znaku $.  

-  Nie jest konieczne deklarowanie zmiennych, tak jak ma to miejsce w wielu innych 

językach. Aby stworzyć zmienną wystarczy nadać jej jakąś wartość, np: 

$a=7; 
$b="Jakiś tekst"; 
$c=2.654; 
$d=0.0 

 

-  PHP obecnie obsługuje następujące typy zmiennych: 

   integer - liczba całkowita 

   double - liczba rzeczywista 

   string - tekst 

   array - tablica 

   object - złożone zmienne definiowane przez użytkownika 

   pdfdoc (Tylko przy włączonej obsłudze dokumentów PDF) 

   pdfinfo (Tylko przy włączonej obsłudze dokumentów PDF)  

 

-  Typ zmiennej jest określany automatycznie na podstawie przypisywanej wartości. I tak 

w powyższym przykładzie $a ma typ integer, $b ma typ string a $c i $d mają typ 

double (0 jest co prawda liczbą całkowitą, ale każda liczba zawierająca kropkę jest 

traktowana jako rzeczywista). 

$a=3; 

$b="Jakaś wartość"; 
$c="$a, $b"; 

 

-  Zmienna $c będzie miała wartość "3, Jakaś wartość". 

 

Stałe  

-  Mogą być definiowane przez użytkownika za pomocą funkcji define(), która 

przyjmuje 2 parametry: nazwę stałej i wartość do niej przypisaną

 

<? 
  define

(

"STALA"

"Hello world."

); 

  echo 

STALA

// Wyświetla "Hello world." 

?>

 

 

background image

Rzutowanie  

-  Odbywa się przez podanie nowego typu w nawiasie przed zmienną lub wartością, 

której typ chcemy zmienić. Na przykład: 

<? 
$liczba_calkowita 

10

$liczba_rzeczywista 

= (real) 

$liczba_calkowita

?>

 

 

Dozwolone typy rzutowań: 

  (int), (integer) - rzutuj do typu całkowitego  
  (real), (double), (float) - rzutuj do typu rzeczywistego  
  (string) - rzutuj do ciągu  
  (array) - rzutuj do tablicy  
  (object) - rzutuj do obiektu

 

 

Ustawienie typu 

-  Sposobem, trwałym, na ustawienie typu zmiennej jest użycie funkcji settype. Funkcja 

ta pobiera 2 argumenty. Pierwszym jest nazwa zmiennej do ustalenia typu, a drugim 

ciąg określający nowy typ zmiennej. Te typy to: 

"integer"  

"double"  

"string"  

"array"  

"object"  

 

-  Funkcja zwraca wartość "true”, gdy wszystko poszło pomyślnie. W przeciwnym razie 

zwracana jest wartość "false". 

    

  <? 

   $zmienna = 10.3;    
   echo " <br> $zmienna"; // Wyświetlona wartość to "10.3"    

   settype($zmienna, "integer");    
   echo " <br> $zmienna"; // Wyświetlona wartość to "10" 
?> 

 

1.  Do strony tworzonej wcześniej dodaj kod powodujący wyświetlenie jej tytułu „Tytuł 

pobrany ze zmiennej” (tag <title>) przechowywanego w odpowiedniej zmiennej.  

background image

2.  Napisz program, który wylicza i odpowiednio wyświetla koszt posiłku w restauracji: 2 

Ryby z frytkami po 18 zł, 5 lampek wina czerwonego po 6 zł, VAT na rybę 7% a na wino 

22%, napiwek 10% całości. 

3.   Przekonwertuj program na stronę z formularzem, w którą  są wpisywane poszczególne 

wartości i skrypt wyliczający i wypisujący poszczególne składniki. 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

background image

Temat 3 – Sterowanie przebiegiem programu 

 

 

Ćwiczenie 1 – instrukcja warunkowa 

-  Używa się jej do wykonania pewnej instrukcji (lub bloku instrukcji), ale tylko w 

pewnych okolicznościach - zostanie spełniony określony warunek lub cały zestaw 

warunków.  

-  Składnia instrukcji warunkowej: 

<?

 

if(

wyrażenie_warunkowe

)

 

   

instrukcja wykonywana jeśli spełniony zostanie warunek

 

else if(

inne_wyrażenie_warunkowe

)

 

   

instrukcja wykonywana jeśli spełniony zostanie drugi warunek

 

      pierwszy nie

 

      

else

 

      

instrukcja wykonywana jeśli nie zostanie spełniony żaden z warunków

 

      

?>

 

 

-  Wyrażeniem warunkowym jest dowolne wyrażenie, które zwraca wartość, czyli wszystkie 

zmienne, wyrażenia logiczne, funkcje itp. Za spełniony warunek uznawana jest wartość 

większa od zera. 

<? 

   $a 

2

   

$b 

5

   

$c 

1

   if(

$a 

$b

      echo 

"$a jest większe od $b"

   else if(

$b 

$c

      echo 

"$b jest większe od $c"

   else 

      echo 

"$c jest większe od $a i $b"

   if(

$a

      echo 

"Zmienna $a ma wartość większą od zera"

?>

 

 

-  Jeśli chcemy, aby po sprawdzeniu warunku wykonane zostało nie jedno, ale kilka poleceń, 

to te polecenia trzeba ująć w nawiasy klamrowe. Bez tego warunkiem objęta by była tylko 

jedna instrukcja po instrukcji if

-  Instrukcje warunkowe mogą być zagnieżdżane wewnątrz siebie: 

 

background image

<? 

$a 

6

$b 

5

$c 

1

if(

$a 

$b

){ 

   echo 

"$a jest większe od $b"

;    

   if(

$a 

$c

      echo 

" i od $c"

// Powinien zostać wyświetlony napis "6 jest większe

                       od 5 i od 1" 

?>

 

 

-  Instrukcje warunkowe mogą być złożone dzięki wykorzystaniu operatorów logicznych

 

<? 
$a 

6

$b 

5

$c 

7

$d 

6

$e 

6

if( (

$a 

$b 

|| 

$a 

$c

) && 

// Nawiasy klamrowe nie są potrzebne - to  

      

$d 

== 

$e 

// 2 linie ale jedna instrukcja 

   

echo 

'Zmienna $a jest większa od $b a zmienna $d jest równa $e, '

.  

      

'więc ten tekst pokaże się.'

;   

// Taka konstrukcja jest dozwolona 

?>

 

 

1.  Przekształć skrypt dla średniej ocen, aby  w zależności od jej wartości wypisywał, jakiej 

wysokości należy się stypendium.  

2.  Dodaj kod do skryptu wyliczającego deltę, aby w zależności od warunków wypisywane 

było ile rozwiązań posiada równanie: 

      Warunki 

Ilość rozwiązań 

a ≠0 
∆ >0 

2 rozwiązania 

a ≠0 
∆ =0 

1 rozwiązanie 

a ≠0 
∆ <0 

0 rozwiązań 

 
3.  Dodaj stronę, która będzie posiadała odpowiednie pola do wpisania wartości przy 

współczynnikach i zmodyfikuj skrypt, aby obsługiwał tą stronę. 

4.  Przekształć skrypt odnoszący się do wyliczania ceny za obiad, tak, aby dla zamówień 

powyżej 50 złotych rabat wynosił 3% a napiwek 8%. 

 

 

 

 

 

background image

Ćwiczenie 2 – instrukcja wyboru 

-  Składnia switch jest instrukcją warunkową, ale jedną zmienną można porównać 

nie z jedną wartością, ale z kilkoma  

-  Nie można konstruować  złożonych warunków - możliwe jest tylko proste 

porównywanie  

-  Składnia: 

<? 

switch(

$zmienna

){ 

   case 

'wartość1'

      ... 

      

instrukcje 

      

... 

      break; 
   case 

'wartość2'

      ... 
      

instrukcje 

      

... 

      break; 
   default: 

      ... 
      

instrukcje 

      

... 

?>

 

 

-  Instrukcje zawarte po identyfikatorze "default" wykonywane są jeśli zmienna 

$zmienna nie przyjęła wartości "wartość1" i "wartość2" (dla tego przykładu). 

-  Instrukcje są przetwarzane linia po linii. Parser przechodzi do pierwszej linii 

"case" pasującej do zmiennej. Następnie przetwarzane są wszystkie linie wewnątrz 

nawiasów klamrowych aż do napotkania instrukcji break - nawet, jeśli po drodze 

znajdują się instrukcje "case". 

<? 
$i 

3

switch(

$i

){ 

   case 

0

   case 

1

   case 

2

   case 

3

      echo 

"Zmienna $i jest mniejsza bądź równa od trzech\n"

      break; 

   case 

4

      echo 

"Zmienna $i jest równa cztery\n"

      break; 
   default: 

      echo 

"Zmienna $i jest większa od czterech\n"

?>

 

 

background image

 
1.  Napisz program zawierający pole do wpisania komendy i skrypt, który powoduje 

wyświetlenie tekstu, że jeśli odpowiednio wpisane zostało: 

1  –   „Wprowadzenie zamówienia” 

2  -   „Realizacja zamówienia” 

3  -  „Modyfikacja zamówienia” 

4  –  „Usuniecie zamówienia” 

inne - „Brak takiego polecenia” 

 
 
 
Ćwiczenie 3 – Pętle 
 

Pętla FOR 

-  Umożliwia wielokrotne wykonanie określonych instrukcji  

-  Składnia: 

<? 

for( 

inicjalizacja zmiennych 

sprawdzenie warunku 

modyfikacja zmiennych

)

 {     

    

blok wyrażeń     

 

?>

 

 

-  3 wyrażenia jako parametry: 

•  inicjalizacja zmiennych, czyli ustawienie początkowych wartości dla zmiennych 

kontrolujących pętlę,  

•  sprawdzenie warunku, czyli wyrażenie logiczne kontrolujące pętlę - pętla będzie 

wykonywana dopóki ten warunek jest prawdziwy,  

•  modyfikacja zmiennych kontrolujących pętlę - bez tego pętla będzie wykonywała 

się w nieskończoność.  

<? 

for( 

$x 

1

$x 

<= 

10

$x

++ ) 

   echo 

$x

.

"<br>"

?>

  

 
Pętla while 

-  Jest wykorzystywana w sytuacjach, kiedy niezbędne jest wykonywanie jakiejś operacji 

dopóki nie zostanie spełniony warunek.  

-  Składnia: 

<? 

while( 

warunek 

){ 

   ... 

background image

   

instrukcje 

   

... 

?>

 

 

-  Dla wcześniejszego przykładu z pętlą for równoważne zapisanie pętli: 

<? 

$x

=

1

while(

$x 

<= 

10

){ 

   echo 

$x

.

"<BR>"

   

$x

++; 

?>

 

 

 

Pętla do...while 

-  Odmiana pętli while. 

-  Różni się tym, że polecenia zawarte w pętli będą przynajmniej raz wykonane - w 

przypadku pętli while tak być nie musi.  

-  Składnia: 

<? 

do{ 
   ... 

   

instrukcje 

   

... 

}while( 

warunek 

); 

?>

  

 

Przerywanie wykonań pętli 

-  Czasem zachodzi potrzeba przerwania danej iteracji (powtórzenia) pętli i przejścia do 

następnej iteracji. Z pomocą wtedy przychodzi instrukcja continue. Wystarczy wstawić ją 

w odpowiednie miejsce wewnątrz pętli. 

-  Przykład : 

<? 

for(

$x 

1

$x

<=

100

$x

++) { 

   if(

$x 

!= 

0

      continue; 

 

   echo 

$x

.

" "

?>

 

 

Po uruchomieniu powyższego przykładu powinniśmy zobaczyć liczby parzyste od 1 do 100. 

Równoważny zapis bez continue: 

background image

<? 

for(

$x 

1

$x

<=

100

$x

++) { 

   if(

$x

%

2

==

0

      echo 

$x

.

" "

?>

 

 

-  Istnieje też polecenie, które powoduje całkowite wyjście z pętli - nie tylko z bieżącej 

iteracji. To polecenie to brake. Załóżmy,  że zmienna $nazwa to zmienna podana z 

formularza: 

<? 

for(

$x 

0

$x

<

10

$x

++) { 

   if(

$x

%

2

==

0

      echo 

$x

.

" "

   if(

$nazwa 

== 

"Test1"

      break; 

?> 

1.  Za pomocą skryptu php utwórz 10-elementową listę wyboru: Samochód 1, Samochód 

2…, itd. 

2.  Napisz program, który wypisuje tabele temperatur dla temperatur od -30 do 30, 

zwiększając, co 3 wartości dla Fahrenheita i Celsiusza – użyj pętli for 

 

Celciusz = (Fahrenheit – 32)  * 5 / 9 

3.  Przekształć program na pętlę while.  

4.  Napisz konwersję w drugą stronę.