Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Technologie internetowe II

Podobne prezentacje


Prezentacja na temat: "Technologie internetowe II"— Zapis prezentacji:

1 Technologie internetowe II
Wykład 1 Dr Krzysztof Heller

2 Technologie internetowe II
Literatura Meloni J.C.: PHP, MySQL i Apache dla każdego. Wydanie III, Helion, 2007 Lis M.: PHP i MySQL dla każdego, Helion, 2005 Leszek 'leon' Krupiński: Wykłady internetowe, 2007 Technologie internetowe II

3 Technologie internetowe II
Plan wykładu 1 Podstawowe elementy języka PHP. Typy danych, stałe i zmienne, operatory i wyrażenia. Instrukcje warunkowe i instrukcje pętli. Tablice. Technologie internetowe II

4 Podstawowe elementy języka PHP

5 Technologie internetowe II
Język PHP PHP - język skryptowy służący do rozszerzania możliwości stron internetowych. Składnia bardzo podobna do popularnych języków programowania C/C++, lecz uproszczona. Wbudowana obsługa wielu popularnych baz danych. Dzięki połączeniu z biblioteką GD możliwe jest także dynamiczne tworzenie obrazków GIF (starsze wersje GD) lub PNG (nowsze wersje). Technologie internetowe II

6 Podstawy programowania PHP
Aby plik był rozpoznany przez serwer WWW jako skrypt PHP musi on mieć odpowiednie rozszerzenie. Rozszerzenia są definiowalne w konfiguracji serwera WWW, zazwyczaj: .php3 (dla PHP w wersji 3), .php lub php4 (dla PHP w wersji 4), .phtml (dla PHP w wersji starszej niż 3). Serwer będzie wiedział, że plik ten nie jest przeznaczony do bezpośredniego wyświetlenia (jak w przypadku plików HTML), ale że najpierw trzeba go przepuścić przez parser PHP. Technologie internetowe II

7 Podstawy programowania PHP
Jeśli zwykłemu plikowi HTML nadamy rozszerzenie .php, to zostanie on prawidłowo wyświetlony Parser PHP przetwarzając stronę ma 2 tryby pracy: HTML, gdzie cała treść jest wyświetlana, bez przetwarzania, PHP, gdzie treść jest traktowana jako skrypt do przetworzenia. Do określenia w pliku co jest kodem HTML a co PHP służą specjalne znaczniki. Początkowo parser jest w trybie HTML. Aby przejść do trybu PHP można użyć jednego z czterech znaczników: 1. skrócone: <? echo ("to jest najprostsza metoda, podobna do SGML'u\n"); ?>; uwaga - short_open_tag = on 2. standardowe: <?php echo("jeśli serwujesz pliki XML, użyj tej metody\n"); ?&>; 3. skryptowe: <script language="php"> echo ("niektóre edytory (np. FrontPage) nie lubią przetwarzania instrukcji"); </script> 4. ASP: <% echo ("Możesz też użyć metody podobnej do tej z ASP"); %> <%= ; # To jest skrót dla "<%echo .." %>; uwaga – asp_tags = on Technologie internetowe II

8 Podstawy programowania PHP
Niby-funkcja echo: dla większości normalnych funkcji parametry trzeba podawać w nawiasach, w przypadku funkcji echo można je pominąć, "echo" jest elementem składni języka, służy do wysyłania tekstu podanego jako parametr do przeglądarki użytkownika . echo nie wysyła znaku końca linii, więc w miejscu końca linii trzeba wstawić \n Funkcja print() – działanie podobne, zwraca wartość. Technologie internetowe II

9 Technologie internetowe II
Pierwszy program <?php echo "Witaj sieci!"; ?> lub print ("Witaj sieci!„); Technologie internetowe II

10 Drugi program – łączenie z HTML
<head> <title>Skrypt PHP zawierający HTML</title> </head> <body> <b> <?php echo "witaj świecie"; ?> </b> </body> </html> Technologie internetowe II

11 Technologie internetowe II
Składnia Zakańczanie - umieszczenie na końcu każdej instrukcji (niekoniecznie linii) znaku średnika (';'). Można pominąć gdy jest przejście do trybu HTML. Komentarz – zaznaczanie tekstu nie będącego programem. Są 3 sposoby: Znak // Znak # Pomiędzy znakami /* a */ Przykład: <? echo „cokolwiek"; // jak w C/C++ echo „cokolwiek 2"; # jak w UNIX shell /* komentarza w kilku liniach */ ?> Technologie internetowe II

12 Typy danych, stałe i zmienne, operatory i wyrażenia

13 Technologie internetowe II
Zmienne Zmienne oznacza się za pomocą znaku dolara ('$') przed identyfikatorem. Zmienna jest inicjalizowana przy pierwszym jej użyciu. Nazwy zmiennych muszą zaczynać się od litery (dużej lub małej) lub "underscore" (dolna kreska - '_') a dalej mogą się składać z dowolnej ilości liter, cyfr i znaków o kodzie ASCII powyżej 127. Przy nazwach zmiennych ważna jest wielkość znaków - zmienne $Test i $test to dwie różne zmienne. Zmienne są widoczne tylko wewnątrz funkcji lub skryptu, w którym się znajdują. Technologie internetowe II

14 Przykłady użycia zmiennych
<? $nazwa = 1; // Zmiennej "nazwa" przypisywana jest wartość liczbowa 1 $druga_nazwa = "Tekst"; /* Zmiennej "druga_nazwa" przypisany jest ciąg znaków "Tekst" */ $trzecia_nazwa = $nazwa; /* Zmiennej "trzecia_nazwa" przypisywana jest wartość zmiennej "nazwa" */ echo "To jest $druga_nazwa"; /* Powinien wyświetlić się napis "To jest Tekst" */ echo '$druga_nazwa'; // Powinien wyświetlić się napis "$druga_nazwa" echo $nazwa; // Powinna wyświetlić się cyfra 1 ?> Technologie internetowe II

15 Technologie internetowe II
Typy zmiennych liczby całkowite (integer) liczby rzeczywiste (double) ciągi (string) tablice (array) obiekty (object) PHP potrafi konwertować zmienne całkowite zapisane w różnych formatach liczbowych: <? $a = 1234; # liczba dziesiętna $a = -123; # liczba ujemna $a = 0123; # liczba ósemkowa (równoznaczne z dziesiętnym 83) $a = 0x12; # liczba szesnastkowa (równoznaczne z dziesiętnym 18) ?> Technologie internetowe II

16 Technologie internetowe II
Ustalenie typu PHP sam ustala typ zmiennej, zależnie od kontekstu: <? $blah = "0"; // $blah jest ciągiem (ASCII 48) $blah++; // $blah jest ciągiem "1" (ASCII 49) $blah += 1; // $blah jest teraz wartością całkowitą (2) $blah = + 1.3; // $blah jest wartością rzeczywistą (1.3) $blah = 5 + "10 Malutkich Świnek"; // jest wartością całkowitą (15) $blah = 5 + "10 Małych Świń"; // jest wartością całkowitą (15) ?> Technologie internetowe II

17 Technologie internetowe II
Zmiana typu Podczas przypisywania zmiennej nowej wartości, poprzednia wartość jest oczywiście zamazywana. W takim przypadku typ zmiennej ustalany jest od nowa. Jeśli jednak zachodzi potrzeba zmiany typu lub PHP błędnie rozpoznaje typ, to można tego dokonać za pomocą rzutowania (cast - efekt jest jednorazowy) lub za pomocą ustalenia typu - funkcja settype (efekt trwały). Technologie internetowe II

18 Technologie internetowe II
Rzutowanie typu 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 Technologie internetowe II

19 Technologie internetowe II
Rzutowanie typu <?php $nieokreslona = 3.14; $chwila = (double) $nieokreslona; echo "czy ".$chwila." jest typu double? ".is_double($chwila)."<br/>"; // double $chwila = (string) $nieokreslona; echo "czy ".$chwila." jest typu string? ".is_string($chwila)."<br/>"; // string $chwila = (integer) $nieokreslona; echo "czy ".$chwila." jest typu integer? ".is_integer($chwila)."<br/>"; // integer $chwila = (boolean) $nieokreslona; echo "czy ".$chwila." jest typu boolean? ".is_bool($chwila)."<br/>"; // boolean echo "<hr/>"; echo "pierwotny typ zmiennej $nieokreslona: "; echo gettype($nieokreslona); // double ?> Technologie internetowe II

20 Technologie internetowe II
Ustalenie typu Funkcja settype pobiera 2 argumenty. Pierwszym jest nazwa zmiennej do ustalenia typu, a drugim ciąg określający nowy typ zmiennej: "integer" "double" "string" "array" "object" Funkcja zwraca wartość "true" gdy wszystko poszło pomyślnie, w przeciwnym razie zwracana jest wartość "false". Technologie internetowe II

21 Technologie internetowe II
Ustalenie typu <?php $nieokreslona = 3.14; echo "czy ".$nieokreslona." jest typu double? ".is_double($nieokreslona)."<br/>"; // double settype($nieokreslona, 'string'); echo "czy ".$nieokreslona." jest typu string? ".is_string($nieokreslona)."<br/>"; // string settype($nieokreslona, 'integer'); echo "czy ".$nieokreslona." jest typu integer? ".is_integer($nieokreslona)."<br/>"; // integer settype($nieokreslona, 'double'); settype($nieokreslona, 'bool'); echo "czy ".$nieokreslona." jest typu boolean? ".is_bool($nieokreslona)."<br/>"; // boolean ?> Technologie internetowe II

22 Technologie internetowe II
Testowanie typu <?php $testing; // deklaracja bez przypisania wartości echo "typ null? ".is_null($test); // sprawdza, czy wartość jest typu null $testing = 5; echo "typ integer? ".is_int($test); // sprawdza, czy wartość typu integer $testing = "five"; echo "typ string? ".is_string($test); // sprawdza, czy wartość typu string $testing = 5.024; echo "typ double? ".is_double($test); // sprawdza, czy wartość typu double $testing = true; echo "typ boolean? ".is_bool($test); // sprawdza, czy wartość typu boolean $testing = array('apple', 'orange', 'pear'); echo "tablica? ".is_array($test); // sprawdza, czy wartość typu array echo "wartość numeryczna? ".is_numeric($test); // sprawdza, czy wartość numeryczna echo "zasób? ".is_resource($test); // sprawdza, czy jest to zasób ?> Technologie internetowe II

23 Zmienne predefiniowane (superglobalne)
W każdym skrypcie PHP dostępne jest kilka zmiennych, których wartość jest ustalana na podstawie zmiennych środowiskowych serwera WWW. Dostępne są jak zwykłe zmienne - ze znakiem dolara przed nazwą. Zmienne dzielą się na: ustawiane przez serwer WWW ustawiane przez PHP Technologie internetowe II

24 Technologie internetowe II
Tablice $_GET – zmienne przesłane do skryptu metodą GET $_POST – zmienne przesłane do skryptu metodą POST $_COOKIE – zmienne przesłane do skryptu metodą COOKIE $_FILES – zmienne przesłane do skryptu przez wysłanie pliku $_SERVER – wysłane nagłówki, ścieżkę do pliku, adres skryptu $_ENV – wartości zmiennych środowiskowych serwera $_REQUEST – zmienne przesłane do skryptu przez użytkownika $_SESSION – zmienne zarejestrowane w aktualnej sesji Technologie internetowe II

25 Zmienne ustawiane przez serwer WWW
GATEWAY_INTERFACE - Informacja o specyfikacji CGI używanej przez serwer, np. 'CGI/1.1'. SERVER_NAME - Nazwa hosta serwera na którym skrypt jest uruchamiany. Jeśli skrypt pracuje na wirtualnym hoście, to zmienna przyjmie jako wartość nazwę wirtualnego hosta. SERVER_SOFTWARE - Ciąg identyfikujący serwera podawany przy odpowiadaniu na zapytania SERVER_PROTOCOL - Nazwa i numer wersji protokołu za pomocą którego wysłano zapytanie o stronę, np. 'HTTP/1.0'; REQUEST_METHOD - Metoda zapytania użyta do uzyskania dostępu do strony, np. 'GET', 'HEAD', 'POST', 'PUT'. QUERY_STRING - Ciąg zapytania (jeśli takowy istnieje) za pomocą którego połączono się ze stroną. DOCUMENT_ROOT - Katalog główny drzewa dokumentów spod którego skrypt jest wykonywany - jest to ustawienie z pliku konfiguracyjnego serwera. Technologie internetowe II

26 Zmienne ustawiane przez serwer WWW
HTTP_ACCEPT - Nagłówek z aktualnego zapytania, jeśli taki istnieje. HTTP_ACCEPT_CHARSET - Zawartość nagłówka "Accept-Charset" z aktualnego zapytania, jeśli taki istnieje, np. 'iso ,*,utf-8'. HTTP_ENCODING - Zawartość nagłówka "Accept-Encoding" z aktualnego zapytania, jeśli taki istnieje, np. 'gzip'. HTTP_ACCEPT_LANGUAGE - Zawartość nagłówka "Accept-Language" z aktualnego zapytania, jeśli taki istnieje, np. 'en'. HTTP_CONNECTION - Zawartość nagłówka "Connection" z aktualnego zapytania, jeśli taki istnieje, np. 'Keep-Alive'. HTTP_HOST - Zawartość nagłówka "Host" z aktualnego zapytania, jeśli taki istnieje. HTTP_REFERER - Adres strony (jeśli taka była), która wskazała przeglądarkę do tej strony. Wartość ta jest ustawiana przez przeglądarkę - nie wszystkie to robią. Technologie internetowe II

27 Zmienne ustawiane przez serwer WWW
HTTP_USER_AGENT - Zawartość nagłówka "User-Agent" z zapytania, jeśli taki istnieje. Jest to ciąg informujący o przeglądarce która została użyta do obejrzenia bieżącej strony, np. Mozilla/4.5 [en] (X11; U; Linux i586). Można użyć funkcji get_browser() aby dopasować funkcjonalność strony do przeglądarki użytkownika. REMOTE_ADDR - Adres IP z którego użytkownik ogląda bieżącą stronę. REMOTE_PORT - Port używany do komunikacji pomiędzy użytkownikiem a serwerem. SCRIPT_FILENAME - Ścieżka do aktualnie wykonywanego skryptu. SERVER_ADMIN - Wartość podana dla opcji SERVER_ADMIN w konfiguracji serwera WWW. Jeśli skrypt działa na wirtualnym serwerze, to będzie to wartość podana dla tego wirtualnego serwera. SERVER_PORT - Port na serwerze którego użyto do połączenia. Dla normalnych połączeń będzie to '80'. SERVER_SIGNATURE - Ciąg zawierający wersję i nazwę wirtualnego hosta który jest dodawany do stron generowanych przez serwer. SCRIPT_NAME - Zawiera ścieżkę do aktualnie wykonywanego pliku. Jest to przydatne do skyptów, które muszą wskazywać samego siebie. REQUEST_URI - URI który został podany aby uzyskać dostęp do tej strony. Technologie internetowe II

28 Zmienne ustawiane przez PHP
argv - Tablica argumentów przekazywanych do skryptu. Jeśli skrypt jest uruchamiany z linii poleceń, to zmienna ta daję dostęp do argumentów w stylu języka C. Jeśli jest wywołany przez metodę GET, to zmienna ta zawierać będzie ciąg parametrów (query string). argc - Zawiera liczbę parametrów podanych podanych do skryptu w linii poleceń (jeśli skrypt został wywołany z linii poleceń). PHP_SELF - Nazwa pliku aktualnie wykonywanego skryptu, względna do katalogu głównego dokumentów. Ta zmienna jest niedostępna jeśli PHP jest uruchamiany z linii poleceń. HTTP_COOKIE_VARS - Tablica asocjacjna zmiennych przekazanych do skryptu przez HTTP cookies. Dostępna tylko jeśli włączone zostało śledzenie zmiennych przez ustawienie w konfiguracji PHP opcji track_vars lub komendą <?php_track_vars?>. HTTP_GET_VARS - Tablica asocjacjna zmiennych przekazanych do skryptu przez metodę GET. Dostępna tylko jeśli włączone zostało śledzenie zmiennych przez ustawienie w konfiguracji PHP opcji track_vars lub komendą <?php_track_vars?>. HTTP_POST_VARS - Tablica asocjacjna zmiennych przekazanych do skryptu przez metodę POST. Dostępna tylko jeśli włączone zostało śledzenie zmiennych przez ustawienie w konfiguracji PHP opcji track_vars lub komendą <?php_track_vars?>. Technologie internetowe II

29 Stałe ustawiane przez parser
__FILE__ - Nazwa pliku ze skryptem który jest aktualnie przetwarzany. Jeśli stała ta użyta jest wewnątrz pliku który został zainkludowany (o poleceniu include w dalszej części kursu), to podana zostanie nazwa pliku zainkludowanego, a nie pliku nadrzędnego. __LINE__ - Numer linii w skrypcie która aktualnie jest przetwarzana. Jeśli stała ta użyta jest wewnątrz pliku który został zainkludowany, to podany zostanie numer linii przetwarzanej w pliku zainkludowanym. PHP_VERSION - Ciąg reprezentujący wersję parsera PHP aktualnie używaną. PHP_OS - Nazwa systemu operacyjnego na którym uruchamiany jest parser PHP. TRUE - Logiczna wartość prawdy. FALSE - Logiczna wartość fałszu. Technologie internetowe II

30 Stałe definiowane przez użytkownika
<?php define("ROK", "2006"); echo "Mamy rok ".ROK; ?> Technologie internetowe II

31 Technologie internetowe II
Operatory Operatory - symbole, które służą do operacji na zmiennych. Operatory dzielą się na: operatory arytmetyczne, operatory przypisania, operatory operacji bitowych, operatory porównania, operator kontroli błędów, operator wywołania (uruchamianie zewnętrznych programów), operatory inkrementacji i dekrementacji, operatory logiczne operatory ciągu. Technologie internetowe II

32 Operator przypisania, operator konkatenacji
Podstawowym operatorem przypisania jest symbol '='. Zmiennej można przypisać także wartość innej zmiennej: $b = 5; $a = $b. Zmiennym można przypisywać wartości innych zmiennych. Wartości te można przypisywać kaskadowo, przy czym wartości przypisywane będą od prawej do lewej. Operator konkatenacji . np. „Ala”.”kot” -> Alakot. Technologie internetowe II

33 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 konkatenacji . np. „Ala”.”kot” -> Alakot Technologie internetowe II

34 Technologie internetowe II
Operator przypisania 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" Technologie internetowe II

35 Operatory operacji bitowych
Przykład Nazwa Wynik $a & $b AND Ustawiane są bity które są ustawione w obu zmiennych. $a | $b OR Ustawiane są bity, które są ustawione w jednej lub drugiej zmiennej. $a ^ $b XOR Ustawiane są bity, które są ustawione w jednej lub drugiej zmiennej, ale nie w obu. ~ $a NOT Inwerter - ustawiane są bity które nie są ustawione w zmiennej $a i odwrotnie. $a << $b Przesunięcie w lewo Przesuń bity z $a $b-razy w lewo (każdy krok oznacza pomnożenie przez 2) $a >> $b Przesunięcie w prawo Przesuń bity z $a $b-razy w prawo (każdy krok oznacza podzielenie przez 2) Technologie internetowe II

36 Technologie internetowe II
Operatory porównania 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. Technologie internetowe II

37 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 ("select nazwa, kod from 'lista") or die ("Zapytanie się nie powiodło: błąd to ''"); ?> Technologie internetowe II

38 Technologie internetowe II
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. <? $wynik = `ls -l /home/`; echo $wynik; ?> Po uruchomieniu tego skryptu wyświetlona zostanie zawartość katalogu /home na serwerze. Technologie internetowe II

39 Operatory inkrementacji i dekrementacji
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. Technologie internetowe II

40 Operatory inkrementacji i dekrementacji
<? echo "<h3>Postinkrementacja"; $a = 5; echo "Powinno być 5: " . $a++ . "<br>\n"; echo "Powinno być 6: " . $a . "<br>\n"; echo "<h3>Preinkrementacja"; echo "Powinno być 6: " . ++$a . "<br>\n"; echo "<h3>Postdekrementacja"; echo "Powinno być 5: " . $a-- . "<br>\n"; echo "Powinno być 4: " . $a . "<br>\n"; echo "<h3>Predekrementacja;"; echo "Powinno być 4: " . --$a . "<br>\n"; echo "Powinno być 4: " . $a . "<br>;\n"; ?> Technologie internetowe II

41 Technologie internetowe II
Operatory logiczne Nazwa Symbol suma logiczna (LUB) || iloczyn logiczny (ORAZ) && negacja (NIE) ! Technologie internetowe II

42 Instrukcje warunkowe i instrukcje pętli

43 Technologie internetowe II
Struktury kontrolne Instrukcje warunkowe Instrukcje pętli: For While Do … while Break Instrukcja switch Technologie internetowe II

44 Technologie internetowe II
Instrukcje warunkowe <? 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, a pierwszy nie else instrukcja wykonywana jeśli nie zostanie spełniony żaden z warunków ?> Wyrażeniem warunkowym jest dowolne wyrażenie. Za warunek uznawane jest wszystko co zwraca wartość, czyli wszystkie zmienne, wyrażenia logiczne, funkcje itp. Spełniony warunek - wartość większa od zera. Technologie internetowe II

45 Technologie internetowe II
Instrukcje warunkowe <?php $nastroj = "smutny"; if ($nastroj == "radosny") { echo "Hurrra, jestem w dobrym nastroju!";} else { echo "Mój nastrój jest $nastroj.";} ?> Jeśli chcemy, aby po sprawdzeniu warunku wykonane zostało nie jedno, ale kilka poleceń, to te polecenia trzeba ująć w nawiasy klamrowe. Technologie internetowe II

46 Technologie internetowe II
Instrukcje warunkowe <?php $nastroj = "smutny"; if ($nastroj == "radosny") { echo "Hurrra, jestem w dobrym nastroju!";} else if ($nastroj == "smutny") { echo "Nie martw się, wszystko będzie dobrze!";} else { echo "Ani wesoły, ani smutny, ale $nastroj.";} ?> Technologie internetowe II

47 Technologie internetowe II
Instrukcje warunkowe <? $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 ?> Technologie internetowe II

48 Technologie internetowe II
Pętla for <? for( inicjalizacja zmiennych ; sprawdzenie warunku ; modyfikacja zmiennych) { blok wyrażeń } ?> Technologie internetowe II

49 Technologie internetowe II
Pętla for – przykład 1 <?php for ($licznik=1; $licznik<=12; $licznik++) { echo "$licznik razy 2 to ".($licznik * 2)."<br>";} ?> Technologie internetowe II

50 Technologie internetowe II
Pętla for – przykład 2 <?php for ($licznik=1; $licznik<=10; $licznik++) { $tymcz = 4000/$licznik; echo "4000 dzielone przez $licznik to... $tymcz<br>"; } ?> Technologie internetowe II

51 Technologie internetowe II
Pętla for – przykład 3 <?php $licznik = -4; for (; $licznik <= 10; $licznik++) { if ($licznik == 0) { break; } else { $tymcz = 4000/$licznik; echo "4000 dzielone przez $licznik to... $tymcz<br>"; } } ?> Technologie internetowe II

52 Technologie internetowe II
Pętla while <? while( warunek ) { ... instrukcje ... } ?> Technologie internetowe II

53 Technologie internetowe II
For przez while <? $x=1; while($x <= 10) { echo $x."<br>"; $x++; } ?> Technologie internetowe II

54 Technologie internetowe II
Przykład while <?php $licznik = 1; while ($licznik <= 12) { echo "$licznik razy 2 to ".($licznik * 2)."<br>"; $licznik++; } ?> Technologie internetowe II

55 Technologie internetowe II
Pętla do…while <? do{ ... instrukcje ... }while( warunek ); ?> Polecenia zawarte w pętli będą wykonane przynajmniej raz. Technologie internetowe II

56 Technologie internetowe II
Przykład do…while <?php $num = 1; do { echo "Liczba: $num<br>"; $num++;} while (($num > 200) && ($num < 400)); ?> Technologie internetowe II

57 Technologie internetowe II
Przerywanie pętli continue - przerwanie danej iteracji pętli i przejście do następnej iteracji. break - całkowite wyjście z pętli - nie tylko z bieżącej iteracji. Technologie internetowe II

58 Technologie internetowe II
Przykład continue <?php $licznik = -4; for (; $licznik <= 10; $licznik++) { if ($licznik == 0) { continue; } $tymcz = 4000/$licznik; echo "4000 dzielone przez $licznik to... $tymcz<br>"; } ?> Technologie internetowe II

59 Technologie internetowe II
Przykład break <?php $licznik = -4; for (; $licznik <= 10; $licznik++) { if ($licznik == 0) { break; } $tymcz = 4000/$licznik; echo "4000 dzielone przez $licznik to... $tymcz<br>"; } ?> Technologie internetowe II

60 Technologie internetowe II
Switch <? switch($zmienna) { case 'wartość1': ... instrukcje ... break; case 'wartość2': ... instrukcje ... break; …. default: ... instrukcje ... } ?> Technologie internetowe II

61 Technologie internetowe II
Switch Jedną zmienną można porównać nie z jedną wartością, ale z kilkoma. Nie można konstruować złożonych warunków. Instrukcje zawarte po identyfikatorze "default" wykonywane są jeśli zmienna $zmienna nie przyjęła wartości "wartość1" i "wartość2 ". 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 ". Technologie internetowe II

62 Technologie internetowe II
Przykład switch <?php $nastroj = "smutny"; switch ($nastroj) { case "radosny": echo "Hurrra, jestem w dobrym nastroju!"; break; case "smutny": echo "Nie martw się, wszystko będzie dobrze!"; break; default: echo "Ani wesoły, ani smutny, ale $nastroj."; break; } ?> Technologie internetowe II

63 Technologie internetowe II
Przykład switch 2 <? $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"; } ?> Technologie internetowe II

64 Tablice

65 Technologie internetowe II
Tablice Tablice to zmienne zawierające w sobie uporządkowany zbiór zmiennych. Do zmiennych tych uzyskuje się dostęp przez liczbę w nawiasie kwadratowym podane bezpośrednio po nazwie zmiennej – tablicy. Liczba ta to indeks - numer kolejny zmiennej w tablicy. Technologie internetowe II

66 Przypisanie wartości tablicy
<? $tablica[0] = "Wpis numer 0"; $tablice[1] = "Wpis numer 1"; $tablica[2] = "Wpis numer 2"; echo $tablica[2]; // Wyświetlony zostanie napis "Wpis numer 2"; ?> Technologie internetowe II

67 Technologie internetowe II
Wypełnianie tablicy Aby dodać kolejny wpis na końcu tabeli wystarczy przy przypisywaniu wartości nie wpisywać indeksu do nawiasów kwadratowych. Jeśli w ten sposób dodawane są wpisy do nowej tablicy, to pierwszy wpis ma indeks 0. Indeks można też podawać ze zmiennej, a nawet z innej tablicy czy funkcji. Elementem tablicy może być każdy typ zmiennej (z innymi tablicami i obiektami włącznie). Technologie internetowe II

68 Przykład wypełniania tablicy
<? $tab1[] = 1; $tab1[] = 0; $tab1[] = 3; $tab1[] = 2; $tab2[] = "Pierwszy"; $tab2[] = "Drugi"; $tab2[] = "Trzeci"; $tab2[] = "Czwarty"; echo $tab2[$tab1[2]]; ?> Technologie internetowe II

69 Przykład złożonej tablicy
<?php $postaci = array( array( "imię" => "Robert", "zawód" => "superbohater", "wiek" => 30, "specjalna moc" => "rentgen w oczach" ), array( "imię" => "Ania", "zawód" => "superbohater", "wiek" => 24, "specjalna moc" => "nadludzka siła" ), array( "imię" => "Kasia", "zawód" => "czarny charakter", "wiek" => 45, "specjalna moc" => "nanotechnologia" ) ); foreach ($postaci as $c) { while (list($k, $v) = each ($c)) { echo "$k ... $v <br/>"; } ?> Technologie internetowe II

70 Technologie internetowe II
Tablica asocjacyjna <? $tablica["imie"] = "Jan"; $tablica["nazwisko"] = "Kowalski"; $tablica["adres"] = "Polna 1"; echo $tablica["imie"]." ".$tablica["nazwisko"].", ul. ".$tablica["adres"]."\n"; ?> Technologie internetowe II

71 Technologie internetowe II
Przeglądanie tablicy Indeks może być zmienną w pętli for. Funkcja count( $nazwa_tablicy ) zwraca ilość elementów w tablicy podanej jako parametr. W przypadku tablicy asocjacyjnej należy skorzystać z funkcji list() i each(). Przy przechodzeniu przez tablice asocjacyjne trzeba wykorzystać pętlę while. Technologie internetowe II

72 Przykład przeglądania tablicy
<? $tbl[] = 1; $tbl[] = 2; $tbl[] = 3; $tbl[] = 4; $tbl[] = 5; for( $x = 0; $x < count($tbl); $x++ ) { echo $tbl[$x]; } ?> Technologie internetowe II

73 Przykład przeglądania tablicy asocjacyjnej
<? $tablica["imie"] = "Jan"; $tablica["nazwisko"] = "Kowalski"; $tablica["adres"] = "Polna 1"; while( list($klucz, $wartosc) = each($tablica) ) echo "$klucz => <BR>"; ?> Technologie internetowe II

74 Niektóre funkcje operujące na tablicach
asort() - sortuje tablice asocjacyjne zachowując przypisanie kluczy do wartości arsort() - sortuje w odwrotnej kolejności tablice asocjacyjne zachowując przypisanie kluczy do wartości ksort() - sortuje tablice asocjacyjne według kluczy rsort() - sortuje zwykłe tablice (nie asocjacyjne) w odwróconej kolejności sort() - sortuje zwykłe tablice (nie asocjacyjne) w kolejności alfabetycznej uasort() - funkcja sortująca tablice asocjacyjne za pomocą zdefiniowanej przez użytkownika funkcji porównującej elementy (nazwa funkcji jest podawana za pomocą drugiego parametru usort() - funkcja sortująca zwykłe tablice za pomocą funkcji zdefiniowanej przez użytkownika uksort() - funkcja sortująca tablice asocjacyjne według klucza za pomocą funkcji zdefiniowanej przez użytkownika Technologie internetowe II

75 Technologie internetowe II
Przykład <? $owoce = array ("d"=>"mango", "a"=>"papaja", "b"=>"banan", "c"=>"aronia"); asort ($owoce); reset ($owoce); // Funkcja ta powoduje powrót do pierwszego elementu tablicy while (list ($klucz, $wartosc) = each ($owoce)) { echo "$klucz = $wartosc\n"; } ?> asort arsort ksort c = aronia a = papaja b = banan d = mango Technologie internetowe II


Pobierz ppt "Technologie internetowe II"

Podobne prezentacje


Reklamy Google