Zobacz też
Paradygmaty programowania:
<?php /* To jest komentarz wieloliniowy, zamykany znacznikiem: */ ?>Komentarz jednoliniowy:
<?php //to jest komentarz jednoliniowy, który nie potrzebuje zamknięcia ?>Komentarz jednoliniowy (inna wersja):
PHP 5
W 2002 roku Zeev Suraski oraz Andi Gutmans ponownie rozpoczęli znaczącą modernizację silnika PHP mającą na celu dodanie do tego języka modelu obiektowego z prawdziwego zdarzenia. W lutym 2003 ukazała się pierwsza wersja alpha nowej wersji PHP oznaczonej numerem 5.0.0. Stabilna wersja ukazała się prawie półtora roku później, w lipcu 2004 roku. Nowości sprawiły, że PHP może konkurować teraz z innymi rozwiązaniami server-side, jak równy z równym. Pojawił się całkowicie nowy model programowania obiektowego, przez co niestety została utracona część kompatybilności z poprzednimi wersjami PHP. Jest to spowodowane zmianą sposobu reprezentacji obiektów. W wersjach wcześniejszych obiekt był jednocześnie zmienną, co sprawiało duże trudności, dlatego też w wersji 5 na wzór Javy zmienna obiektowa stała się jedynie referencją do właściwego obiektu. Obecnie operacja przypisania powoduje powstanie drugiej referencji wskazującej na ten sam obiekt. Przebudowano także wiele modułów, w tym do obsługi XML'a i komunikacji z bazą danych, czyniąc je bardziej przyjaznymi dla programistów. Oprócz tego udostępniono zbiór interfejsów znacznie rozszerzających możliwości klas użytkownika. Nastąpiły także zmiany oraz nowości w systemie modułów PHP. Funkcje obsługi języka XML zostały przepisane i wbudowane bezpośrednio w jądro aplikacji. Oprócz narzędzi obsługujących model DOMudostępniono SimpleXML – prosty interfejs do modyfikacji dokumentów XML. Wprowadzono SQLite, nowy, domyślnie "wkompilowany" silnik baz danych. 24 listopada 2005 roku ukazała się wersja 5.1, w której pojawił się PDO – ujednolicony sterownik oraz preprocesor zapytań umożliwiający komunikację z różnymi systemami baz danych. Kolejna wersja – 5.2, pojawiła się 2 listopada 2006 roku i skoncentrowana była na rozbudowie mechanizmów wejścia/wyjścia (obsługa formatów ZIP i JSON, filtry wejścia, obserwacja postępów przesyłania plików) i zarządzaniu pamięcią. Aktualna podwersja tej gałęzi to 5.2.13 wydana 25 lutego 2010; 186 dni temu.
Domyślnie PHP zawsze (pomijając obiekty od wersji 5) przekazuje zmienne przez wartość. Przekazywanie przez referencję zachodzi w wybranych funkcjach wbudowanych, oprócz tego można je narzucić w deklaracji własnej funkcji:
PHP jest najczęściej stosowany do tworzenia skryptów po stronie serwera WWW, ale może być on również używany do przetwarzania danych z poziomu wiersza poleceń, a nawet do pisania programów pracujących w trybie graficznym (np. za pomocą biblioteki GTK+, używając rozszerzenia PHP-GTK). Implementacja PHP wraz z serwerem WWW Apache oraz serwerem baz danych MySQL określana jest jako platforma AMP (w środowisku Linux – LAMP, w Windows – WAMP).
linki sponsorowane Węglowodany Bielizna erotyczna odżywki olimp noclegi w ustroniuPrzykładowe zastosowanie
Niektóre aplikacje napisane w PHP korzystają z formularzy. Przykładowa aplikacja przypominająca prosty kalkulator została zamieszczona poniżej:
<?php class Foo { private $zmienna; public function setZmienna($cos) { $this->zmienna = $cos; } public function getZmienna() { if($this->zmienna == '') { throw new Exception('Proszę ustawić zmienną'); } else { return $this->zmienna; } } } try { $objFoo = new Foo; print $objFoo->getZmienna(); } catch(Exception $e) { die('Wystąpił błąd: ' . $e->getMessage()); } ?>Obsługa baz danych
PHP obsługuje większość znanych baz danych: MySQL, Postgres, Oracle, Mssql, DB2. Poniżej przedstawiono wykonanie zapytania SQL na bazie danych MySQL przy pomocy biblioteki PDO dla PHP5:
<?php if (isset($_POST['licz'])) { $_POST['a']=floatval($_POST['a']); // Konwersja na liczbę zmiennoprzecinkową $_POST['b']=floatval($_POST['b']); echo "Chcesz obliczyć sumę następujących liczb:" . "<br />" . "<b>"; print_r($_POST['a']); echo "</b>" . "<br />" . "Oraz:" . "<br />" . "<b>"; print_r($_POST['b']); echo "</b>" . "<hr />"; echo "Ich suma to:" . " <b>"; $wynik = $_POST['a'] + $_POST['b']; echo $wynik; echo "</b>"; } else { echo "Wpisz liczby."; } ?> <!-- Poniżej znajduje się sam formularz --> <form action="<?php echo ($_SERVER['SCRIPT_NAME']); ?>" method="POST"> Podaj dwie liczby:<br /> Liczba A: <input name="a" /><br /> Liczba B: <input name="b" /><br /> <input type="submit" name="licz" value="Oblicz!" /> </form>Ze względów bezpieczeństwa nie powinno się stosować $_SERVER['PHP_SELF'] może to grozić atakami XSS, powinno się stosować $_SERVER['SCRIPT_NAME'].
ksiazki - meble - thuongmaibn.com - Gry - czynszówka - biuro podróży warszawa - Darmowe Gry Online Darmowe Gry Online - Wakacje, wyjazdy, narty słowacja , podróże - nauka jazdy toruń - gry dla dzieci - Bloczki Betonowe Bloczki Betonowe Bloczki Betonowe - Nowoczesna agencja interaktywna - Zapraszamy - Aminokwasy - Boostery azotu - KreatynaMożliwości
Skrypty napisane w PHP są z reguły umieszczane w plikach tekstowych (czasami razem z kodem HTML lub XHTML). Dzięki temu PHP jest podobny w założeniach do coraz rzadziej stosowanego mechanizmu Server Side Includes. PHP pozwala także na wykonywanie skryptów z linii poleceń podobnie jak Perl, Python oraz Ruby. Jego modułowa budowa daje również możliwość programowania samodzielnych aplikacji z interfejsem graficznym. PHP umożliwia współpracę z wieloma rodzajami źródeł danych, takich jak systemy zarządzania bazami danych, pliki tekstowe, dokumenty XML oraz serwisy WWW.
- Oficjalny podręcznik PHP
- Dodatkowe aplikacje PHP
- Dodatkowe moduły PHP
Klasy i obiekty
Klasy deklarujemy następująco (od PHP5):
30 czerwca 2009 wydano PHP 5.3. Główne zmiany obejmują wprowadzenie w języku obsługiprzestrzeni nazw. Pojawiły się również wyrażenia lambda i tzw.domknięcia (znane z takich języków jak JavaScript, Ruby czy Lisp). Oprócz tego dopracowano również obsługę metod statycznych i poprawiono działanie PHP pod systemem Windows wprowadzając kompilacje VC9 oraz eksperymentalne wersje binarne pod x64. Ponadto wprowadzono mysqlnd –opcjonalny, natywny zamiennik PHP dla libmysql oraz poprawiono wiele błędów. Aktualna wersja języka to 5.3.2 wydana 4 marca 2010; 179 dni temu.
PHP 3
W 1997 roku projektem zainteresowali się dwaj izraelscy programiści: Zeev Suraski i Andi Gutmans. Odkryli oni, że PHP/FI ma zbyt małe możliwości na potrzeby aplikacji eCommerce, którą tworzyli na uniwersytecie. Zdecydowali wtedy, że przepiszą kod PHP całkowicie od nowa, korzystając z pomocy już istniejącej społeczności PHP. W czerwcu 1998 roku ogłosili PHP 3.0 jako następcę PHP/FI, którego dalszy rozwój został wtedy zatrzymany. Był to wielki krok naprzód. PHP 3.0 posiadało całkowicie nową architekturę, która znacznie zwiększała wydajność. Pojawiły się w niej zalążki programowania obiektowego, ale najważniejszą cechą aplikacji była jej modułowość. Użytkownicy mogli rozszerzać teraz funkcjonalność języka poprzez dodawanie nowych modułów.
Zmiany koncentrują się przede wszystkim wokół wbudowania w język obsługi Unicode, mają także na celu dalsze usprawnienia modelu obiektowego oraz wycofanie obsługi wybranych, przestarzałych rozwiązań.
Platforma LAMP:
Moduły jądra Część silnika PHP; zawsze aktywne. Moduły oficjalne Element każdej dystrybucji PHP; aktywowane ręcznie przez administratora serwera. Repozytorium PECL Darmowe moduły o otwartym źródle tworzone przez programistów z całego świata, przeznaczone do samodzielnej kompilacji. Począwszy od wydania PHP 5 do PECL przeniesionych zostało wiele wcześniejszych modułów oficjalnych, najczęściej tych niestabilnych lub rzadko używanych. Repozytorium PEAR Zbiór realizujących typowe zadania klas o ujednoliconej budowie.Zdecydowana większość modułów ma budowę proceduralną. Dopiero w PHP 5 rozpoczęto tworzenie w pełni obiektowych rozszerzeń oraz obiektowych zamienników starych funkcji.
<?php try { $pdo = new PDO('mysql:host=localhost;dbname=articles', 'root', 'root'); $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $pdo -> query('SELECT id, name, content FROM articles ORDER BY id'); echo '<ul>'; foreach($stmt as $row) { echo '<h1>'.$row['name'].'</h1>'; echo $row['content'].'<hr />'; } $stmt -> closeCursor(); echo '</ul>'; } catch(PDOException $e) { echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage(); }Zastosowanie
Popularność
W roku 1997 język PHP/FI obsługiwało ok. 50 tysięcy domen internetowych. Do roku 2005 udział PHP rósł. Później uległ stabilizacji na poziomie ok. 20 milionów domen (9% wszystkich).
Historia
Początki
Pierwsza wersja PHP, rozpowszechniana pod nazwą PHP/FI (Personal Home Page/Forms Interpreter), została stworzona przez Rasmusa Lerdorfa w roku 1994 jako zestaw skryptów Perla służący do monitorowania internautów odwiedzających jego witrynę. Gdy ruch stał się zbyt duży, przepisał je w języku C, dodając przy tym nowe opcje. Niedługo później ludzie zaczęli prosić go o możliwość użycia tych narzędzi na swoich stronach, zatem 8 czerwca 1995 roku autor udostępnił publicznie kod źródłowy (PHP Tools 1.0). Już kilka miesięcy później projekt przekształcił się w zalążek znanego obecnie języka programowania, gdy został połączony z innym narzędziem Rasmusa Lerdorfa - Form Interpreter, które dało drugi człon nazwy. W 1997 roku pojawiło się PHP/FI 2.0, posiadające wtedy kilka tysięcy aktywnych użytkowników na całym świecie oraz obsługujące 50 tys. domen. Co ciekawe, wersja ta spędziła większość "życia" na beta testach. Oficjalne wydanie było tylko jedno i ukazało się w listopadzie 1997 roku.
Składnia
Składnia PHP jest oparta na składni języków C, Java oraz Perl.
Moduły
Cała funkcjonalność PHP zawarta jest w czterech zbiorach modułów różniących się od siebie dostępnością dla programisty.
PHP 4
Krótko po wydaniu PHP 3, w zimie 1998 Zeev Suraski oraz Andi Gutmans jeszcze raz zabrali się za przepisywanie kodu źródłowego PHP, korzystając z doświadczeń nabytych przy pracach nad poprzednią wersją. Za główne cele obrali poprawienie modułowości oraz wydajności złożonych aplikacji. Choć dotychczasowa wersja potrafiła sobie z nimi poradzić, nie była jednak stworzona do tego celu i przegrywała przez to z innymi rozwiązaniami.
PHP
Z Wikipedii, wolnej encyklopediiPHP – obiektowy, skryptowy język programowania zaprojektowany do generowania stron internetowych w czasie rzeczywistym.
PHP 6
W połowie roku 2005 zaczęły pojawiać się oficjalne sygnały, że rozpoczęto wstępne prace nad PHP 6. Obecnie publicznie dostępne są codzienne snapshoty rozwojowego repozytorium kodu źródłowego, które można ściągnąć i przetestować. Głównym celem jest dalsze dążenie do ujednolicenia projektu, wprowadzenia dalszych możliwości wymaganych przez złożone projekty (m.in. pełne wsparcie unicode czy system cache'owania kodu). Usuwane są też kolejne archaiczne rozwiązania pochodzące jeszcze z czasów PHP/FI oraz PHP3, co w przypadku najstarszych skryptów ponownie spowoduje problemy z kompatybilnością.
Na podstawie kursu PHP na Wikibooks, licencja GNU Free Documentation License.
<?php # to jest komentarz jednoliniowy, który nie potrzebuje zamknięcia ?>Typy danych i zmienne
Zmienne w PHP nie wymagają deklaracji i nie posiadają jawnych typów. Jeżeli kontekst (na przykład definicja argumentu funkcji lub operator) danego wyrażenia wymaga zmiany jego typu, zostaje ono rzutowane do typu wymaganego. Wśród obsługiwanych rodzajów danych znajdują się:
Aplikacje
W PHP powstała znaczna część obecnie istniejących aplikacji sieciowych. Należą do nich systemy zarządzania treścią, systemy forów dyskusyjnych, aplikacje pocztowe oraz klienty baz danych.
W połowie roku 1999 ukazał się oficjalnie Zend Engine, nowy silnik języka skryptowego, wokół którego niedługo później zaczęto budować PHP 4. Jego nazwa to kompromisowe połączenie imion twórców projektu. Nowa, oparta o niego wersja PHP, ukazała się w maju 2000 roku. Tak jak poprzednio, był to potężny krok naprzód. Programiści mieli do dyspozycji teraz wiele nowych narzędzi, konstrukcji językowych oraz bezpieczniejszy system wejścia/wyjścia. Od strony administracyjnej pojawiło się oficjalne wsparcie dla wielu nowych serwerów. Przez cztery lata od chwili wydania ukazały się trzy kolejne edycje tej wersji oznaczone numerami: 4.1, 4.2 oraz 4.3. W każdej z nich odczuwalne było zwiększenie bezpieczeństwa, szybkości działania oraz możliwości. W 2004 roku obsługiwały one łącznie 20% wszystkich domen sieciowych.
PHP obsługuje rekurencję do poziomu około stu zagłębień. Jeśli stos parsera zostanie przeciążony nadmierną ilością wywołań lub iteracji, wywołanie aplikacji zostanie przerwane.
<?php $a = 5; $b = 3; function suma($zmienna1, $zmienna2) { return $zmienna1 + $zmienna2; //Dodajemy argumenty i zwracamy wynik } echo suma($a, $b); // 8 ?>Cały kod PHP musi zawierać się pomiędzy znacznikami: <?php oraz ?>, w przeciwnym wypadku interpreter nie wykona kodu. Starsze wersje dopuszczały także parę znaczników <? oraz ?>. Obecnie są one niezalecane, a w PHP 6 nie będą dostępne.
<?php class Przyklad { public function powiedzCzesc($imie) { return 'Cześć, '.$imie; } } $objPrzyklad = new Przyklad; echo $objPrzyklad->powiedzCzesc('Adam'); ?>Funkcje i struktury kontrolne
PHP jest wyposażone w szeroki wachlarz domyślnych funkcji. Niekonsekwencja w ich nazewnictwie (np. naprzemienne stosowanie CamelCase i znaku podkreślenia) jest niekiedy przedmiotem krytyki PHP. Znaczna część funkcji pochodzi jednak od ich odpowiedników w języku C i różnice pomiędzy nazwami funkcji wywodzą się właśnie z różnic w nazewnictwie z odpowiednich bibliotek C.
<?php class MojaKlasa { public $zm_publiczna; //definiowanie zmiennej publicznej private $zm_prywatna; //definiowanie zmiennej prywatnej protected $zm_chroniona; //definiowanie zmiennej chronionej const STALA; //definiowanie stałej public function __construct() { echo 'Jestem konstruktorem klasy MojaKlasa. Za każdym razem gdy powołasz mój obiekt do życia, wykonam operacje zawarte w tej metodzie.<br />'; } public function zrob_cos() { echo 'Właśnie wykonywana jest funkcja zrob_cos()<br />'; } public function __destruct() { echo 'Jestem destruktorem klasy MojaKlasa. Za każdym razem gdy usuniesz mój obiekt, wykonam operacje zawarte w tej metodzie.<br />'; } } $mojobiekt = new MojaKlasa(); //powoła do życia obiekt i wykona operacje zawarte w funkcji __construct() $mojobiekt -> zrob_cos(); // Wydrukuje komunikat //kończąc kod PHP, wszystkie zmienne są usuwane, wywoływana jest funkcja __destruct() ?>Komentarze
Rozróżniamy trzy typy komentarzy: Komentarz wieloliniowy:
<?php function foo(&$value) { $value = 'bar'; } ?>Klasy i obiekty
Elementy programowania obiektowego pojawiły się w PHP 3. W PHP 4 udostępniono statyczne wywoływanie metod. W PHP 5 możliwości zostały rozszerzone między innymi o statyczne zmienne klasy, obsługę interfejsów, kontrolę dostępu, kontrolę typów czy klasy i metody abstrakcyjne. Model PHP wzoruje się na językach C++ i Java. Od wersji 5 PHP posiada mechanizmy refleksyjne, które pozwalają na analizę klas, funkcji oraz rozszerzeń. Bez zainstalowania odpowiedniego rozszerzenia nie umożliwiają one jednak zmiany tych struktur w czasie wykonywania, przykład klasy:
Obsługa błędów
Wersja 5 wprowadziła mechanizm wyjątków. Tylko część modułów powiadamia jednak użytkownika o wystąpieniu błędów za ich pośrednictwem; większość umieszcza je na wyjściu programu w miejscu ich wystąpienia. Przykład: