Aplikacje internetowe. Informacja o języku PHP. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne.

Podobne dokumenty
Tablice w PHP Jak odczytać coś od użytkownika? POST vs. GET Walidowanie po stronie serwera Prosta CAPTCHa

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Można inicjować tablicę inną tablicą np. $owoce = array( Jabłko, Gruszka, Banan ); $owoce_kopia = $owoce; Jeśli chcemy stworzyć tablicę zawierającą

PHP: bloki kodu, tablice, obiekty i formularze

Stałe definiuje się używając funkcji define. Przykład: define( PODATEK, 22); define( INSTALACJAOS, 70); define( MS, Microsoft );

Aplikacje internetowe. Informacja o języku PHP. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne.

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:

FORMULARZE. G. Przęczek

HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do śledzenia użytkownika

Formularze HTML. dr Radosław Matusik. radmat

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Wprowadzenie do języka JavaScript

Podstawy Programowania C++

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Bazy Danych i Usługi Sieciowe

Lekcja 7 Tablice. Definiowanie tablicy

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ;

1 Podstawy c++ w pigułce.

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Wykład 03 JavaScript. Michał Drabik

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

SSK - Techniki Internetowe

Programowanie internetowe

ZMIENNE. Podstawy PHP

Aplikacja internetowa = program działający w środowisku przeglądarki internetowej. Aplikacje i/lub dynamiczne strony internetowe:

Systemy internetowe Wykład 3 PHP

APLIKACJE INTERNETOWE 5 PHP W P R O W A D Z E N I E D O P R O G R A M O W A N I A

HTML ciąg dalszy. Listy, formularze

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

1 Podstawy c++ w pigułce.

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Umieszczanie kodu. kod skryptu

Krótki kurs JavaScript

Oczywiście plik musi mieć rozszerzenie *.php

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Obiektowe bazy danych

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Instrukcje dołączania plików

Należy ściągnąć oprogramowanie Apache na platformę

FORMULARZE Formularz ma formę ankiety, którą można wypełnić na stronie. Taki formularz może być np. przesłany pocztą elektroniczną .

Języki skryptowe w programie Plans

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Elementem tablicy może być każdy typ zmiennej (z innymi tablicami i obiektami włącznie). Tablica dwuwymiarowa, zawiera dwa indeksy, np.

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

7. Pętle for. Przykłady

1. Wprowadzenie do języka PHP

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Podstawy JavaScript ćwiczenia

Na początku utworzymy formularz w czystym języku HTML i przetestujemy go za pomocą przeglądarki WWW.

Zajęcia 10 obsługa formularzy w PHP

Laboratorium 1 Wprowadzenie do PHP

Ćwiczenie 1. Wprowadzenie do programu Octave

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Cw.12 JAVAScript w dokumentach HTML

Języki programowania wysokiego poziomu. PHP cz.2.

Informatyka II. Laboratorium Aplikacja okienkowa

4. Funkcje. Przykłady

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Zmienne i stałe w PHP

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych.

Część 4 życie programu

LABORATORIUM 2 WSTĘP DO SIECI TELEINFORMATYCZNYCH TABELE I FORMULARZE

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

JAVAScript w dokumentach HTML (2)

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Celem tego projektu jest stworzenie

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.

Ćwiczenie 7 - Formularze

Programowanie w języku Python. Grażyna Koba

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Podstawy i języki programowania

Zaawansowane aplikacje internetowe

CZYM JEST JAVASCRIPT?

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

Lab 9 Podstawy Programowania

Formularze Pobierają dane od użytkownika strony i wysyłają je do przetworzenia na serwerze (gdzie potrzebne są skrypty,któredaneprzetworzą najczęściej

Bazy Danych i Usługi Sieciowe

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

Pętla for. Wynik działania programu:

Metody numeryczne Laboratorium 2

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Dane - pobieranie, przekazywanie i przechowywanie. dr Beata Kuźmińska-Sołśnia

Pętle. Dodał Administrator niedziela, 14 marzec :27

Podstawy programowania. Podstawy C# Tablice

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Podstawy technologii WWW

Programowanie - instrukcje sterujące

Transkrypt:

Aplikacje internetowe. Informacja o języku PHP. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Język PHP Język interpretowalny, a nie kompilowany Powstał w celu programowania po stronie serwera Jest obecnie najbardziej popularnym językiem programowania w Internecie

PHP i HTML w jednym stali domu Aby plik był rozpoznawany przez serwer musi mieć odpowiednie rozszerzenie Oprócz tego serwer musi mieć prawa do wykonania takiego pliku (CHMOD o+x) Ale rozszerzenie to nie wszystko: <? echo ( Skrypt osadzony w pliku");?> <?php echo( Troszkę dłuższy sposób");?> <script language="php"> echo ( Sposób podobny do osadzania JavaScriptu"); </script>

Pierwszy skrypt

Komentarze Pamiętaj, aby nie zagnieżdżać komentarzy wielolinijkowych!

Obsługa zmiennych Zmienne oznaczamy za pomocą znaku $ Po nim musi następować litera lub znak podkreślenia _ Zmienne w PHP nie muszą być inicjalizowane Nie trzeba też z góry deklarować ich typu! $Test!= $test!= $test

Zmienne PHP jest proste jak nie wiem $dwa 2

Stałe Takie zmienne, tylko niezmienne Definiowane wcześniej

Typy zmiennych Nie trzeba się o to martwić, ale warto wiedzieć, że PHP ma kilka wbudowanych typów zmiennych: liczby całkowite (integer) liczby rzeczywiste (double) ciągi (string) tablice (array) obiekty (object)

Rzutowanie, settype

Operatory arytmetyczne i Przykład przypisania Wynik $a + $b Suma $a i $b $a - $b Różnica $a i $b $a * $b Iloczyn $a i $b $a / $b Iloraz $a i $b $a % $b Reszta z dzielenia $a i $b Przykład Równoznaczne z: Wynik $c += 10 $c = $c + 10 Do zmiennej $c dodaj 10 $c -= 10 $c = $c 10 Od zmiennej $c odejmij 10 $c *= 10 $c = $c * 10 Pomnóż $c przez 10 $c /= 10 $c = $c / 10 Podziel $c przez 10 $c %= 10 $c = $c % 10 Do $c przypisz resztę z dzielenia $c przez 10 $c.= tekst $c = $c. tekst Do $c dopisz ciąg znaków tekst

Inne operatory Operatory porównania tożsame jak w innych językach programowania (==,!=, <, >, <=, >=) Operator kontroli błędów: @ Operator wywołania: $listning = `ls -l /home/`; Operatory inkrementacji i dekrementacji (pre i post!) Operatory logiczne (&&,,!) Operator ciągu

Instrukcje warunkowe Warunki można grupować za pomocą Nic nowego: operatorów logicznych <?php if(warunek1a warunek1b) echo Pierwszy warunek spełniony ; elseif(warunek2a && warunek 2b) echo Drugi warunek spełniony, pierwszy nie ; else echo Żaden z warunków nie spełniony?> Brak ścisłej kontroli typów powoduje, że warunkiem może być cokolwiek zwracające wartość. Warunek spełniony === wartość większa od zera.

Pętla for <?php for( $x = 3; $x <= 100; $x+=3 ) echo $x."<br>";?> Wynikiem będzie wypisanie wszystkich liczb podzielnych przez 3, a mniejszych niż 100. Ogólna konstrukcja: for(zmienna kontrolująca;warunek;modyfikacja zmiennej)

Pętla while Pętla wykonywana dopóki warunek jest spełniony Na starcie możemy nie znać konkretnej liczby przebiegów Pętla może się w ogóle nie wykonać jeśli warunek na wejściu będzie niespełniony! <?php $x=3; while($x <= 100) { echo $x."<br>"; $x+=3; }?>

Pętla do while Pętla wykonywana dopóki warunek jest spełniony Na starcie możemy nie znać konkretnej liczby przebiegów Pętla wykona się co najmniej raz, warunek sprawdzamy na końcu! <?php $x=3; do { echo $x."<br>"; $x+=3; } while($x <= 100)?>

Przerywanie wykonania pętli Instrukcja continue pomija aktualnie wykonywany przebieg Instrukcja break wychodzi całkowicie z pętli

Wielokrotna instrukcja warunkowa <?php switch($zmienna) { case 'wartość1':... instrukcje... break; case 'wartość2':... instrukcje... break; default:... instrukcje... }?>

Krótkie przypomnienie formularzy Ogólny schemat prostego formularza:

Atrybuty formularza (<form>) accept - typy zawartości MIME akceptowane przez serwer (opcjonalny) accept-charset - zestaw znaków akceptowanych przez serwer (opcjonalny) action - rodzaj akcji podejmowanej po naciśnięciu przycisku typu submit (wymagany) enctype - sposób kodowania wysyłanych informacji, np. enctype="text/plain" (opcjonalny) method - metoda wysyłania danych na serwer (opcjonalny), wartości: get, post. name - unikatowa nazwa formularza (opcjonalny) target - okno docelowe, do którego wysyłany jest efekt działania skryptu obsługującego formularz (opcjonalny)

Atrybuty elementu input accept (dla type="file") - określa akceptowaną przez serwer listę typów dokumentów MIME, (opcjonany). accesskey - przypisuje klawisz szybkiego dostępu do elementu formularza (opcjonalny). alt (dla type="image") - określa alternatywny tekst opisujący grafikę dla przeglądarki mającej problem z wyświetleniem pola (opcjonalny). checked (dla type="{checkbox, radio}")- ustala początkowe zaznaczenie pola radio lub checkbox (opcjonalny). disabled - wyłącza pole (opcjonalny). maxlength (dla type="{file, password, readonly, text} ") - ustala maksymalną długość tekstu, który można wprowadzić w polu (opcjonalny). name (oprócz type="reset") - nadaje polu unikatową nazwę (wymagany). readonly (oprócz type="{reset, readonly}") - blokuje możliwość zmieniania zawartości pola (opcjonalny). size (dla type="{file, password, readonly, text}") - określa szerokość wyświetlanego pola (opcjonalny). src (dla type="image") - podaje położenie grafiki dla przycisku (opcjonalny). type - określa rodzaj pola (wymagany), wartości: button, checkbox, file, hidden, image, password, radio, reset, submit, text. tabindex [="liczba"] określa kolejność wyboru elementu przyciskiem tabulacji (opcjonalny). value - określa początkową, domyślną wartość danego pola (niewymagany).

Przykładowy formularz

POST Tablica $_POST Dowolna długość tekstu przesyłanego. Wysyłanie odbywa się w nagłówkach protokołu HTTP Użytkownik nie widzi wewnętrznej reprezentacji pól. Brak cache owania przez serwery proxy Po kliknięciu wstecz wartości zostają Konieczne kliknięcie wyślij aby wysłać dane Metoda ta służy także do uploadowania plików. Tablica $_GET GET Ograniczenie ilości przesyłanych danych. Wysyłanie poprzez adres strony. Użytkownik widzi reprezentację: "skrypt.php?imie=wartosc&naz wisko=wartosc". Proxy cache uje zapytania Po kliknięciu wstecz dane znikają Wystarczy wejść na odpowiednio przetworzony adres Brak możliwości uploadu

Dostęp do zmiennych formularza Założenie: Pole formularza, którego wartość chcemy odczytać nosi nazwę nick. W skrypcie PHP można uzyskać dostęp do zawartości każdego pola formularza na 3 sposoby: Traktując nazwę pola jako zmienną o identycznej nazwie: echo( $nick ); Na serwerze musi być włączona opcja register_globals. Domyślnie jest ona wyłączona! Wykorzystując zmienne superglobalne $_GET, $_POST, $_REQUEST: echo $_POST["nick"]; Wykorzystując styl rozwlekły: echo( $HTTP_POST_VARS[ nick ] ); Można go wyłączyć nadając odpowiednią wartość dyrektywnie register_long_arrays.

Dostęp do zmiennych formularza Magiczny kod: Print_r - displays information about a variable in a way that's readable by humans

Tablice Tablica zmienna przechowująca zbiór lub sekwencję wartości. Tablice przechowujące inne tablice to tablice wielowymiarowe. W PHP są 2 typy tablic: Tablice indeksowane numerycznie Tablice asocjacyjne (indeks to np. ciąg znaków) Tablice numeryczne domyślnie mają indeksy (klucze) zaczynające się od 0, ale może to być łatwo zmienione. Tablice indeksowaną numerycznie można utworzyć na kilka sposobów. Jeśli chcemy utworzyć tablicę zawierającą określone wartości może skorzystać z konstrukcji array(). Przykład: $owoce = array( Jabłko, Gruszka, Banan );

Inicjowanie tablic Można inicjować tablicę inną tablicą np. $owoce = array( Jabłko, Gruszka, Banan ); $owoce_kopia = $owoce; Jeśli chcemy stworzyć tablicę zawierającą jakąś sekwencję wygodnie jest skorzystać z funkcji range(). Przykład: $liczby = range(1, 10); $nieparzyste = range(1, 10, 2); $litery = range ( A, Z ); Można inicjować tablice bezpośrednio z pliku czy bazy danych. Ale o tym kiedy indziej Można tworzyć elementy i całe tablice w locie np. $owoce = array( Jabłko, Gruszka, Banan ); //indeks od zera $owoce[3] = Brzoskinia ; //Idę jeść Oczywiście elementu tablicy wartość odczytujemy podając nazwę tablicy i indeks w nawiasach klamrowych. Można też tak: $owoce[] = Morela ; //Wtedy zostanie wzięty największy dotąd użyty indeks i powiększony o jeden (w naszym przypadku będzie to 3 + 1 = 4)

Dobieranie się do elementów tablicy Pętla for? for ($i = 1: $i<count($owoce); $i++) echo $owoce[$i]." "; Pętla foreach? foreach (wyrażenie_tablicowe as $wartość) instrukcja; foreach (wyrażenie_tablicowe as $klucz => $wartość) instrukcja; Przykład: foreach ($owoce as $owc) echo Wartość: $owc\n"; foreach ($owoce as $klucz => $owc) echo Indeks: $klucz; Wartość: $owc\n";

A może by tak tablica asocjacyjna? Tablice asocjacyjne definiujemy używając operatora =>. Przykład: $owoce = array( Jabłko => 2, Gruszka => 3.5, Banan => 1.7); Wówczas aby dostać się do wartości trzeciego elementu (sprawdzić ile kosztują banany) należy napisać: echo($owoce[ Banan ]); Aby przejrzeć elementy tablicy asocjacyjnej można skorzystać z pętli foreach() albo używając funkcji each() oraz list(). Przykład: while ($element = each($owoce)){ echo $element['key']; //lub $element[0]; echo $element['value']; //lub $element[1]; } Each zwraca bieżący element tablicy (a raczej parę klucz wartość jako tablicę) i ustawia wskaźnik bieżącego elementu tablicy na następny jej element. Mała uwaga: Wskaźnik bieżącego elementu tablicy zostaje na jej końcu, więc trzeba wywołać funkcję reset($wyrażenie_tablicowe), aby go przestawić na początek. while(list($owoc, $cena) = each($owoce)) echo $owoc - $cena \n ; Poniższy kod daje ten sam efekt, ale funkcja list() została użyta by rezultat działania funkcji each() zamienić na dwie logicznie brzmiące zmienne.

Operatory tablicowe- powtórka Nazwa Przykład Rezultat + Unia $x + $y Zwraca tablicę zawierającą wszystkie elementy tablic $x i $y == Równość $x == $y Zwraca true jeśli $x i $y mają te same pary kluczy i wartości === Identyczność $x === $y Zwraca true jeśli $x i $y mają te same pary kluczy i wartości, ułożone w tej samej kolejności!= Nierówność $x!= $y Zwraca true jeśli $x i $y nie są sobie równe <> Nierówność $x <> $y Zwraca true jeśli $x i $y nie są sobie równe!= Nieidentyczność $x!== $y Zwraca true jeśli $x i $y nie są identyczne Uwaga dla Unii: Jeśli elementy z $y mają takie same klucze jak niektóre elementy już obecne w $x to nie zostaną one dodane (nadpisane).

Tablice wielowymiarowe $owoce = array ( array('jb', 'Jabłko', 2), array('gr', 'Gruszka', 3.5), array('bn', 'Banan', 1.7)); Albo tak: $owoce = array ( array('kod' => 'Jb', 'Nazwa' => 'Jabłko', 'Cena' => 2), array('kod' => 'Gr', 'Nazwa' => 'Gruszka', 'Cena' => 3.5), array('kod' => 'Bn', 'Nazwa' => 'Banan', 'Cena' => 1.7)); Albo tak: $owoce = array(array()); //nie wymagane ale dobrze mieć $owoce[0][1] = "Bn"; $owoce[0][2] = "Banan"; $owoce[0][3] = 1.7; Oczywiście nie ma ograniczenia na liczbę wymiarów Kto wymyśli rozsądny przykład tablicy 10cio wymiarowej?

Sortowanie tablic 1. Funkcja sort(). $owoce = array( Jabłko, Morela, Gruszka, Banan ); sort($owoce); I już mamy tablicę posortowaną leksykograficznie. Funkcja sort zwraca uwagę na wielkość liter: A < Z < a Można też sortować liczby w tablicy: $owoce = array(100, 2, 100, 6); sort($owoce); Ale sort ma też drugi parametr opcjonalny, który może przyjmować następujące wartości: SORT_REGULAR domyślne zachowanie SORT_NUMERIC porównaj elementy numerycznie SORT_STRING porównaj elementy jak łańcuchy znaków SORT_LOCALE_STRING porównaj elementy jak łańcuchy znaków wykorzystując systemowe ustawienia języka i porównywania znaków (locale). Po co ten parametr? Jak porównujemy np. 13 i 3 to pod względem numerycznym 3 < 13, a pod względem leksykograficznym 13 < 3.

Sortowanie tablic 2 Niestety sort() nie zachowuje przyporządkowania do konkretnych kluczy tj.: $owoce[5] = "Bn"; $owoce[7] = 1.7; $owoce[8] = "Banan"; sort($owoce); Da w wyniku uporządkowanie: 0 Banan; 1 Bn; 2-1.7 Dlatego do sortowania tablic asocjacyjnych (lub tam, gdzie nam zależy na zachowaniu przyporządkowania kluczy) należy stosować dwie inne funkcje: asort($wyrażenie_tablicowe) - sortuje według wartości elementów ksort($wyrażenie_tablicowe) - sortuje według kluczy Wszystkie przedstawione funkcje sortują elementy tablic jednowymiarowych rosnąco. Ale mają swoje odpowiedniki zawierające literę r w nazwie, sortujące w porządku malejącym. Są to: rsort($wyrażenie_tablicowe) arsort($wyrażenie_tablicowe) krsort($wyrażenie_tablicowe) Ich działanie jest analogiczne do przedstawionych wcześniej braci.

Sortowanie tablic wielowymiarowych Aby posortować tablice wielowymiarowe należy zdefiniować funkcję porównującą. Funkcja przyjmuje 2 parametry (dwa elementy, które będziemy porównywać ze sobą) i powinna zwrócić: Wartość 0 jeśli te elementy są równe. Wartość ujemną jeśli pierwszy element jest mniejszy od drugiego. Wartość dodatnią jeśli pierwszy element jest większy od drugiego. Przykładowa funkcja porównująca sortująca po wartościach drugiego wymiaru tablicy: function porownaj($x, $y) { if($x[1] == $y[1]) return 0; else if ($x[1] < $y[1]) return -1; else return 1; } Następnie wywołujemy funkcję usort($wyrażenie_tablicowe, funkcja_porównująca ) ;

Własne kryteria sortowania c.d. Oczywiście funkcja usort() może służyć do sortowania tablic jednowymiarowych o skomplikowanej strukturze wedle kryteriów podanych przez użytkownika. Literka u w funkcji usort() odnosi się do słowa użytkownik ponieważ to użytkownik określa funkcję porównującą. Funkcje asort() i ksort() również mają swoje odpowiedniki umożliwiające podanie kryteriów sortowania przez użytkownika w postaci funkcji uasort() i uksort(). Należy zauważyć, że bardzo łatwo można przerobić funkcję porównującą tak, aby dane były uporządkowane w odwrotnym porządku (malejąco). Pytanie do Sali: Co należy zrobić?

Funkcje i operacje na tablicach Funkcja shuffle($wyrażenie_tablicowe) Ustawia losowo kolejność elementów w tablicy. Funkcja array_reverse($wyrażenie_tablicowe) Zwraca kopię tablicy o tych samych elementach co tablica podana jako parametr, ale w odwrotnej kolejności. Ładowanie danych z pliku do tablicy $owoce = file("$_server[ DOCUMENT_ROOT ]/zamowienia.txt"); for($i = 0; i < count($owoce); i++) $linia = explode("\t", $owoce[$i]); Funkcja file() ładuje cały plik do tablicy. Każdy wiersz pliku staje się jednym elementem tablicy. Funkcja explode(string separator, string ciąg, [int limit]), dzieli wiersz na poszczególne pola (przy założeniu, że wartości w pliku są rozdzielone znakami tabulatora).

Inne operacje na tablicach Poruszanie się wewnątrz tablicy. Każda tablica posiada wewnętrzny wskaźnik pokazujący aktualny element tablicy. Gdy zostaje stworzona nowa tablica, wskaźnik wskazuje na pierwszy element tablicy. Funkcja current($nazwa_tablicy) zwraca element, na który aktualnie wskazuje wewnętrzny wskaźnik. each($nazwa_tablicy) pobiera aktualny element i przesuwa wskaźnik o jeden do przodu. next($nazwa_tablicy) najpierw przesuwany jest wskaźnik, a potem zwracana jest wartość aktualnego (następnego) elementu. reset($nazwa_tablicy) ustawia wskaźnik na pierwszy element tablicy. end($nazwa_tablicy) przesuwa wskaźnik na koniec tablicy. prev($nazwa_tablicy) przesuwa wskaźnik o jeden element wstecz, po czym zwraca aktualny element.

Inne operacje na tablicach c.d. Liczenie elementów tablicy Funkcje count($nazwa_tablicy) i sizeof($nazwa_tablicy) zwracają liczbę elementów tablicy. Jeśli jako parametr zostanie podana tablica pusta to funkcja zwróci wartość zero. array_count_values($nazwa_tablicy) oblicza ile niepowtarzalnych wartości występuje w danej tablicy, oraz zwraca tablicę asocjacyjną zawierającą tabelę częstości występowania każdej wartości. Konwersja tablic na zmienne skalarne Funkcja extract($wyrażenie_tablicowe, [int typ_ekstrakcji],[string przedrostek]) pobiera tablicę i tworzy zmienne skalarne o nazwach jak klucze w tablicy. Przykład: $owoce = array( Jabłko => 2, Gruszka => 3.5, Banan => 1.7); extract($owoce); Stworzy 3 zmienne o nazwach $Jabłko, $Gruszka, $Banan. Typ_ekstrakcji określa sposób postępowania podczas kolizji nazwa (gdy zmienna o danej nazwie już istnieje). Można zdefiniować przedrostek, który zostanie dodany do nazwy zmiennej, gdy wystąpi kolizja.