plik


ÿþIDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ PHP. Programowanie SPIS TRE CI SPIS TRE CI w systemie Windows KATALOG KSI¥¯EK KATALOG KSI¥¯EK Autor: Andrew Stopford KATALOG ONLINE KATALOG ONLINE T³umaczenie: Aleksandra Kula ISBN: 83-7197-915-0 Tytu³ orygina³u: PHP Programming for Windows ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG Format: B5, stron: 290 TWÓJ KOSZYK TWÓJ KOSZYK Ksi¹¿ka opisuje doskona³¹ platformê programistyczn¹ dla MS Windows. Opisuje ona DODAJ DO KOSZYKA DODAJ DO KOSZYKA PHP na tyle szczegó³owo, ¿e osoby zainteresowane mog¹ potraktowaæ j¹ jako podrêcznik tego jêzyka. Jej szczególn¹ zalet¹ jest wyczerpuj¹ce omówienie integracji PHP z technologiami Windows. Dziêki ksi¹¿ce dowiesz siê, jak tworzyæ i wykorzystywaæ CENNIK I INFORMACJE CENNIK I INFORMACJE obiekty COM w PHP, jak ³¹czyæ PHP z platform¹ .NET, jak korzystaæ z ActiveDirectory oraz jak u¿ywaæ MSXML. ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWO CIACH O NOWO CIACH  PHP. Programowanie w systemie Windows zawiera równie¿ opis: " Instalacji PHP w systemie Windows ZAMÓW CENNIK ZAMÓW CENNIK " Konfigurowania i optymalizacji serwerów WWW " Jêzyka PHP i jego funkcji " £¹czenia PHP z bazami danych (Microsoft SQL Server, Oracle i MySQL) CZYTELNIA CZYTELNIA " U¿ycia XML i XSLT w PHP " Integracji PHP z ASP przy u¿yciu WDDX FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE " Tworzenia us³ug WWW w PHP Je li planujesz u¿ywaæ PHP w systemach Windows, ksi¹¿ka ta stanie siê dla Ciebie nieocenion¹ pomoc¹. Gwarancjê dobrej jako ci stanowi równie¿ nazwisko autora. Andrew Stopford jest programist¹ z wieloletnim do wiadczeniem, cz³onkiem wielu zespo³ów pracuj¹cych nad projektami typu  open-source , miêdzy innymi XML-RPC for ASP i NMatrix. Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Au n I n n Co to jest PHP? ......................................................................................................................18 Jak powstaB PHP?...................................................................................................................18 Czym jest Open Source?........................................................................................................20 Projektowanie w PHP a projektowanie wykorzystujce technologie ASP i ColdFusion?....20 Kto odpowiada za dalszy rozwój PHP?.................................................................................21 PHP dzisiaj.............................................................................................................................22 PrzyszBo[ PHP ......................................................................................................................22 Podsumowanie .......................................................................................................................23 In Planowanie instalacji PHP .....................................................................................................25 Pobieranie PHP z witryny......................................................................................................26 Instalowanie PHP...................................................................................................................28 Optymalizowanie instalacji....................................................................................................44 Rozwizywanie problemów z instalacj................................................................................51 Podsumowanie .......................................................................................................................51 II n n n Narz¹dzia do tworzenia aplikacji w PHP ..............................................................................55 Podstawy skBadni PHP ...........................................................................................................56 Zmienne .................................................................................................................................57 Operatory logiczne i p¹tle......................................................................................................68 Tablice ...................................................................................................................................74 Kod strukturalny i kod wielokrotnego u|ytku .......................................................................80 Podsumowanie .......................................................................................................................86 Funkcje PHP obsBugi plików i katalogów..............................................................................87 PHP i pliki..............................................................................................................................87 PHP i katalogi ........................................................................................................................97 Podsumowanie .....................................................................................................................104 Sesje PHP.............................................................................................................................105 PHP a sesje WDDX .............................................................................................................110 Podsumowanie .....................................................................................................................120 n h Metody PHP tworzenia zapytaD do bazy danych ................................................................121 WspóBpraca z baz danych...................................................................................................123 Przekazywanie zapytania do bazy z wykorzystaniem ODBC i PHP...................................123 PrzesyBanie zapytania bezpo[rednio do bazy z wykorzystaniem PHP ................................128 Podsumowanie .....................................................................................................................151 III n n n Wszystko na temat technologii COM..................................................................................155 PHP i .NET ..........................................................................................................................163 Podsumowanie .....................................................................................................................169 Krótka historia XML-a ........................................................................................................171 Czym jest XML?..................................................................................................................172 Wy[wietlanie dokumentów w j¹zyku XML ........................................................................173 Z czego skBada si¹ j¹zyk XML?...........................................................................................173 Struktura j¹zyka XML .........................................................................................................177 Korzystanie z PHP i XML ...................................................................................................178 Formatowanie dokumentów XML za pomoc PHP i XSL .................................................186 Podsumowanie .....................................................................................................................190 u u Z czego skBadaj si¹ usBugi WWW? ....................................................................................191 PrzyszBo[ usBug WWW ......................................................................................................199 Korzystanie z PHP do tworzenia usBug WWW ...................................................................199 Podsumowanie .....................................................................................................................208 A Historia ADO.......................................................................................................................209 Czym jest ADO dla programisty PHP? ...............................................................................211 Instalowanie ADO ...............................................................................................................211 WspóBpraca pomi¹dzy PHP i ADO .....................................................................................211 ADODB i PHP.....................................................................................................................232 Podsumowanie .....................................................................................................................234 A Co to jest katalog X.500?.....................................................................................................235 Czym jest LDAP? ................................................................................................................236 Czym jest Active Directory?................................................................................................236 Korzystanie z Active Directory ...........................................................................................238 Korzystanie z PHP w poBczeniu z Active Directory ..........................................................238 Podsumowanie .....................................................................................................................262 A n n In n RozdziaB 3. n Teraz, kiedy ju| zainstalowaBe[ PHP, mo|esz zacz projektowa aplikacje z jego wykorzy- staniem. W tym rozdziale dowiesz si¹, od czego zacz, projektujc aplikacje dla WWW, oraz zapoznasz si¹ z ró|nymi typami danych i strukturami skBadajcymi si¹ na j¹zyk. n Zanim zaczniesz programowa w PHP, potrzebny Ci b¹dzie program do pisania, edy- towania i zapisywania skryptów. Mo|esz korzysta z aplikacji Notatnik, jednak dost¹pne s równie| inne programy oferujce takie funkcje jak pod[wietlanie skBadni kodu oraz testowanie i uruchamianie. Omówimy to w kolejnych punktach. Edytor typu open-source, PHP Edit, oferuje pod[wietlanie kodu w ró|nych kolorach, testo- wanie go oraz dost¹p do dokumentacji funkcji oraz obiektów i inne. Wi¹cej informacji, jak równie| samo narz¹dzie, znajdziesz na stronie http://www. phpedit.com/. Macromedia HomeSite to edytor HTML obsBugujcy technologi¹ ASP, ColdFusion i PHP. ObsBuga kolorowego pod[wietlania poszczególnych elementów kodu jest wbudowan funkcj HomeSite, ale dost¹p do innych funkcji, takich jak dokumentacja skBadni, jest mo|liwy jedynie przy wykorzystaniu narz¹dzi innych firm. Wi¹cej informacji i testow wersj¹ mo|esz pobra z witryny http://www.macromedia.com/ software/homesite/. Dodatki do programu Macromedia HomeSite przeznaczone do programowania w PHP mo|na pobra ze strony http://www.wilk4.com/asp4hs/php4hs.htm. II A Narz¹dzie dost¹pne jest zarówno dla platformy Windows, jak i Linux. ActiveState Ko- modo to popularny edytor. ObsBuga PHP jest wbudowan funkcj narz¹dzia umo|liwia- jc pod[wietlanie w ró|nych kolorach skBadni oraz zdalne testowanie i uruchamianie kodu. Wi¹cej informacji i testow wersj¹ ActiveState Komodo mo|na pobra z http://www. activestate.com/Products/Komodo/. n I Zend IDE to narz¹dzie zbudowane w oparciu o j¹zyk Java, które zawiera obsBug¹ pod- [wietlania w ró|nych kolorach skBadni, jak równie| rozbudowane funkcje zdalnego testo- wania i uruchamiania. Wi¹cej informacji i testow wersj¹ narz¹dzia znajdziesz na stronie http://www.zend.com/store/products/zend-ide.php. n Podobnie jak ASP, PHP wykorzystuje co[, co osobi[cie nazywam  otwierajco-zamy- kajcym nawiasem (z ang. open-close bracket). W klasycznym ASP program rozpoczyna si¹ od znacznika pocztku programu ( ), a koDczy si¹ znacznikiem koDca programu ( ): Podobna sytuacja ma miejsce w przypadku PHP. Program rozpoczyna si¹ od znacznika , a koDczy : PHP dopuszcza równie| skBadni¹ dobrze znan programistom tworzcym aplikacje urucha- miane po stronie klienta. SkBadnia ta rozpoczyna si¹ poleceniem , a koDczy poleceniem : Je[li masz do[wiadczenie w projektowaniu w ASP, nie musisz si¹ obawia. PHP pozwala wykorzystywa skBadni¹ ASP: Aby jednak taka skBadnia byBa poprawna, musisz zmieni wpis w pliku php.ini: Ta zmienna ma domy[lnie przypisan warto[ . n Wieloliniowe programy tworzone w PHP wymagaj u|ycia dodatkowego znaku: Zauwa|, |e PHP wymaga u|ycia operatora zamykajcego lini¹  znaku [rednika ( ). Je[li uruchomisz program, w którym nie ma znacznika koDca linii, jak w poni|ej przedsta- wionym przykBadzie, pojawi si¹ informacja o bB¹dzie : Je[li nigdy nie u|ywaBe[ znaków koDca linii, mo|esz czasami o nich zapomina. Je[li pojawi si¹ wiadomo[ podczas tworzenia aplikacji dla WWW, sprawdz, czy nie brakuje znaku koDca linii w wierszu o numerze podanym przez komunikat o bB¹dzie, jak pokazano na rysunku 3.1. un Wiadomo[ o bBdzie Parse error nn PHP jest okre[lany jako j¹zyk luznych deklaracji. Oznacza to, |e nie musisz deklarowa typu zmiennych przed ich u|yciem. PHP przypisuje w Twoim imieniu typy zmiennych. Aby to zrozumie, przyjrzyj si¹ nast¹pujcemu przykBadowi: II Je[li zapiszesz dane jako zmienn, PHP przypisuje typ zmiennej zgodnie z typem zapi- sanych w niej danych. Najpierw podaj, jakie dane b¹d przechowywane w zmiennej: PHP nadaje zmiennej typ odpowiadajcy danym zapisanym w zmiennej. Na przykBad, po- niewa| do zmiennej przypisana jest warto[  Andrzej , PHP nada tej zmiennej typ . Mo|esz to sprawdzi, wy[wietlajc typ zmiennej za pomoc funkcji : Teraz mo|esz wy[wietli warto[ zmiennej i jej typ: Je[li uruchomisz ten skrypt, zobaczysz takie wyniki, jakie pokazano na rysunku 3.2. un Typy danych w PHP Zwró uwag¹, |e zmienna typu jest wy[wietlana jako . PHP wy[wietla zmienne typu jako , je[li zmienna ma warto[ , i jako (warto[ pusta), je[li zmien- na ma warto[ . Przyjrzymy si¹ temu dokBadniej w dalszej cz¹[ci tego rozdziaBu. n nn h Chocia| luzne deklaracje mog by przydatne w niektórych sytuacjach, czasem musisz poda typ danych wprost, na przykBad przy przetwarzaniu danych pobranych z bazy da- nych. W tym celu musisz skorzysta z metody : Podobnie jak w pierwszym przykBadzie, przypisali[my zmiennym warto[ci i wy[wietli- li[my zawarto[ tych zmiennych oraz ich typ: II Nast¹pnie mo|liwa jest zmiana typu ka|dej ze zmiennych za pomoc funkcji : Jako argumenty funkcji podaj nazw¹ zmiennej, której typ chcesz zmieni (jak na przykBad ), a nast¹pnie typ danych, na który typ zmiennej ma zosta zmie- niony (na przykBad ). Na koDcu mo|esz wy[wietli warto[ci i nowe typy zmiennych: Je[li uruchomisz ten skrypt, zobaczysz, |e typy zmiennych zostaBy zmienione zgodnie z wydanymi poleceniami, jak pokazano na rysunku 3.3. un Wykorzystanie funkcji SetType do zmiany typu zmiennej O ile zamiana zmiennych typu i nie stanowiBa wi¹kszego problemu, to zamiana zmiennych typu i byBa wi¹kszym wyzwaniem. Wy[wietlone wyniki pokazuj, |e zmienna typu ma warto[ . Jest to zgodne z zasadami wy[wietlania przez PHP zmiennych typu , poniewa| PHP wy[wietla warto[ jako , dlatego po konwersji zmienna typu ma warto[ . Jak wida, równie| zmienna ma warto[ . Zmienna typu miaBa warto[ , lecz po konwersji na typ zmienna nie byBa pusta i dlatego zostaBa uznana za zmienn o warto[ci czyli . Aby po konwersji zmienna typu miaBa war- to[ , czyli , zmienna typu musiaBaby przed konwersj mie warto[ bdz by pusta: Je[li dokonamy takiej zmiany w naszym przykBadzie, to wida (patrz rysunek 3.4), |e warto[ zmiennej typu jest widoczna jako pusta zmienna. Pami¹taj, |e PHP traktuje warto[ jako warto[ dla zmiennej typu . Dlatego po konwersji zmiennej typu o warto[ci do typu zawarto[ zmiennej jest traktowana jako . Nale|y równie| pami¹ta, |e PHP wy[wietla zmienne typu o warto[ci jako zmienne puste. Std w naszym przykBadzie zostaBa wy[wietlona pusta zmienna. un Dane zawierajca zmienn typu boolean o warto[ci False u n Rzutowanie typów to kolejny sposób przypisywania typów zmiennych. II Najpierw przypisz warto[ zmiennej: Wiadomo, |e dla takiej warto[ci zmiennej, PHP ustawi typ zmiennej jako . Mo|esz jednak zmieni ten typ. Je[li chcesz zmieni typ zmiennej na , mo|esz to zrobi za pomoc nast¹pujcego polecenia: Zmienna przyjmuje warto[ zmiennej , ale przypisywany jest jej typ . Takie rzutowanie typów jest mo|liwe dla wszystkich typów zmiennych, jak wida na przedstawionym przykBadzie. Po uruchomieniu skryptu przekonasz si¹, jak dziaBa rzutowanie skryptów (pokazano to na rysunku 3.5). un Rzutowanie typów W przedstawionym przykBadzie wida, |e warto[ zostaBa uznana przez PHP za typ . Po wykonaniu rzutowania typów, widoczne s zmiany warto[ci zmiennej w za- le|no[ci od bie|cego typu zmiennej. n PHP pozwala u|ywa operatorów arytmetycznych na zgodnych typach zmiennych. Jakie to typy? Wszystkie przechowujce dane w formie numerycznej (oznacza to dowolny typ zmiennych z wyjtkiem typu ). W kolejnym przykBadzie przedstawiony zostanie równie| operator konkatenacji (poBczenia cigów). Nie martw si¹, je[li nie jeste[ zazna- jomiony z t kwesti. Przyjrzymy si¹ jej za moment: II Zaczynamy od przypisania warto[ci dwóch zmiennych, na których b¹dziemy wykonywa operacje arytmetyczne: Nast¹pnie wykonujemy dziaBanie arytmetyczne na tych zmiennych: W koDcu wy[wietlany jest wynik operacji: Je[li uruchomisz skrypt, wy[wietlone zostan wyniki operacji arytmetycznych pokazane na rysunku 3.6. un Operacje arytmetyczne Warto nadmieni, |e nast¹pujca deklaracja jest równie| poprawna: W ten sposób utworzone zmienne b¹d ró|nych typów. Zmienna jest typu , a zmienna jest typu . Je[li zmienisz warto[ci zmiennych zgodnie z poni|szym przykBadem, skrypt nadal b¹dzie dziaBaB poprawnie: Skrypt nadal b¹dzie wykonany poprawnie, ale operatory arytmetyczne nie zadziaBaj. Je[li PHP napotka dane innego typu ni| numeryczne, zignoruje t¹ zmienn. u h un PHP udost¹pnia kilka sposobów pracy na zmiennych BaDcuchowych ( ). Cz¹sto korzystasz ze zmiennych BaDcuchowych pobranych z takiego zródBa jak formularze HTML, pliki czy bazy danych, dlatego PHP umo|liwia manipulowanie tymi danymi na ró|ne sposoby. Rozpoczniemy nasz prac¹ ze zmiennymi BaDcuchowymi od zdefiniowania kilku zmiennych: n Aby poBczy zdefiniowane wcze[niej cigi, u|yj operatora konkatenacji: UtworzyBe[ now zmienn BaDcuchow przez poBczenie trzech cigów. Zauwa|, |e do Bczenia BaDcuchów sBu|y znak kropki ( ). u u Aby pozna dBugo[ nowego cigu, u|yj funkcji : PHP umo|liwia usuwanie dodatkowego znaku spacji (cz¹sto zwanego równie|  biaB spacj ) znajdujcego si¹ na koDcu lub na pocztku BaDcucha znaków. Poniewa| nasz nowy BaDcuch nie koDczy si¹ ani nie zaczyna  biaB spacj , musimy j najpierw doda, aby nast¹pnie u|y tych funkcji: Teraz mo|esz usun pocztkow spacj¹ za pomoc funkcji :  BiaB spacj¹ zarówno rozpoczynajc, jak i koDczc BaDcuch znaków mo|esz usun za pomoc funkcji : PHP pozwala zmieni wielko[ wszystkich liter w BaDcuchu na wielkie lub na maBe. Aby zmieni wszystkie litery w BaDcuch na wielkie, u|yj funkcji : Funkcja sBu|y do zamiany wszystkich liter w BaDcuchu na maBe: u h n PHP umo|liwia wyszukanie lokalizacji, utworzenie oraz dodanie podBaDcucha do BaDcucha znaków. Do utworzenia podBaDcucha znaków sBu|y funkcja : II Jako argument podawany jest BaDcuch znaków, z którego utworzony ma by podBaDcuch (w naszym przypadku jest to BaDcuch ), i pozycja w BaDcuchu, od której podBaDcuch ma si¹ zaczyna (w naszym przykBadzie podBaDcuch ma si¹ zaczyna od trzeciego znaku w BaDcuchu). Mo|esz odszuka lokalizacj¹ podBaDcucha wewntrz BaDcucha za pomoc funkcji : Argumentami tej funkcji jest BaDcuch, wewntrz którego podBaDcuch ma by wyszukany (u nas jest to BaDcuch ), oraz wyszukiwany podBaDcuch (jest to wcze[niej utworzony podBaDcuch ). Mo|esz równie| zamieni wybrany podBaDcuch na inny we wskazanym BaDcuchu za pomoc funkcji : Argumentem funkcji jest BaDcuch, który ma by wyszukany (w naszym przy- padku jest to ), BaDcuch, którym zostanie on zastpiony (w naszym przykBadzie jest to BaDcuch ), oraz BaDcuch, wewntrz którego zamiana zostanie dokonana (w na- szym przykBadzie jest to ). n u u h Mo|esz sprawdzi wszystkie opisane wcze[niej metody za pomoc nast¹pujcego skryptu: Je[li uruchomisz powy|szy skrypt, zobaczysz, jak dziaBaj metody obsBugi BaDcuchów, co pokazano na rysunku 3.7. Zauwa|, |e wy[wietlajc wyniki dziaBania metody konka- tenacji, po obu stronach BaDcucha umie[ciBem znaki . Pozwala to pokaza znaki spacji umieszczone pomi¹dzy tymi znakami a BaDcuchem. II un Metody obsBugi BaDcuchów n Kontrolowanie dziaBania programu jest niezwykle istotn kwesti. By mo|e musisz sprawdzi okre[lone warunki logiczne lub wykona p¹tl¹ po sprawdzeniu warunku. Takie elementy byBy zawsze obecne w j¹zykach programowania i w tym przypadku PHP nie jest wyjtkiem. n W PHP istnieje kilka sposobów sprawdzania warunków logicznych. Sprawdzajc waru- nek logiczny, porównujesz jedn warto[ z inn warto[ci i sprawdzasz, czy s sobie równe: Ten fragment kodu wykorzystuje instrukcj¹ . SkBadnia tej instrukcji jest prosta. Je[li warto[ jest równa innej warto[ci, PHP zwraca warto[ wyra|enia jako  prawda . W po- wy|szym fragmencie kodu sprawdzamy, czy warto[ zmiennej jest równa . Je[li tak, to wy[wietlany jest komunikat, jak pokazano na rysunku 3.8. Co by si¹ staBo, gdyby warto[ zmiennej byBa ró|na od podanej w warunku warto[ci? Poprzedni przykBad nie wy[wietliBby |adnej warto[ci. Jednak za pomoc PHP równie| mo|esz wykonywa okre[lone dziaBania, je[li warunek nie zostanie speBniony. un 8 Testowanie prawdziwo[ci wyra|enia za pomoc instrukcji if Je[li warto[ci, której szukasz, nie odnaleziono, wykonane zostanie dziaBanie zdefinio- wane po instrukcji . Je[li warto[ zmiennej jest równa podanej warto[ci, to wy[wietlony zostanie komunikat . Je[li jednak warto[ zmiennej jest ró|na od podanej warto[ci, to wy[wietlony zostanie komunikat . Nadanie zmiennej warto[ci innej ni| podana w warunku powoduje wy- [wietlenie komunikatu , jak pokazano na rysunku 3.9. un Sprawdzanie nieprawdziwo[ci wyra|enia za pomoc instrukcji if else Je[li masz wiele warunków do sprawdzenia za pomoc instrukcji , mo|esz to zrobi w nast¹pujcy sposób: II Najwi¹kszym problemem sprawia tutaj fakt, |e PHP wykona wszystkie instrukcje , nawet je[li pierwszy warunek zostanie speBniony. Aby tego unikn, mo|esz wykorzysta zagnie|d|one instrukcje : Jednak, je[li utworzyBe[ wiele zagnie|d|onych instrukcji , pisany przez Ciebie kod szybko stanie si¹ nieczytelny. Lepszym sposobem b¹dzie u|ycie instrukcji i : W tym przykBadzie sprawdzana jest ka|da warto[ zmiennej w instrukcji . Je[li odnaleziona zostanie pasujca warto[, wy[wietlany jest komunikat o odnalezieniu hasBa dla danego u|ytkownika. Zauwa|, |e u|yto instrukcji , aby po odszukaniu odpowiedniej warto[ci przerwane zostaBo wykonywanie dalszych instrukcji wewntrz instrukcji . W przeciwnym razie instrukcja byBaby wykonywana analogicznie jak wcze[niej przedstawiona instrukcja , czyli sprawdzane zostaByby kolejno wszystkie warunki. I PHP umo|liwia wykonywanie w programie p¹tli na kilka sposobów. Wszystkie p¹tle pozwalaj wykonywa serie poleceD, a| do momentu, kiedy warunek wykonania p¹tli zostanie speBniony, na przykBad licznik osignie okre[lon warto[. Pierwsz metod jest p¹tla : P¹tla skBada si¹ z nast¹pujcych elementów: Warto[ci rozpoczynajcej p¹tl¹  w naszym przypadku jest to 1 ( ). Sposobu sprawdzania warto[ci. W tym przypadku, je[li warto[ zmiennej wyniesie 10, p¹tla przestanie by wykonywana ( ). Sposobu zmiany warto[ci wewntrz p¹tli. W naszym przykBadzie warto[ jest zwi¹kszana o jeden przy ka|dym przebiegu p¹tli ( ). Dlatego p¹tla wy[wietla liczby od 1 do 10 (rysunek 3.10). un 0 lnkrementacja licznika ptli for od 1 do 10 Wewntrz p¹tli ma miejsce kilka wa|nych zdarzeD. Pierwszym z nich jest testowa- nie warunku logicznego. W naszym przykBadzie sprawdzali[my, czy warto[ zmiennej jest równa lub mniejsza od 10. Mo|esz równie| sprawdza inne warunki, jak pokazano w tabeli 3.1. II lnne warunki Warunki Znaczenie równy ró|ny mniejszy ni| wi¹kszy ni| wi¹kszy lub równy mniejszy lub równy identyczny (równa warto[ i taki sam typ) Mo|esz u|ywa tych warunków nie tylko w poBczeniu z instrukcj , ale z dowoln instrukcj, która sprawdza warto[ warunku logicznego, na przykBad z instrukcj . Przyjrzyj si¹, w jaki sposób w poprzednim przykBadzie zmieniana jest warto[ licznika podczas wykonywania p¹tli. Warto[ licznika mo|e by inkrementowana lub dekremen- towana. Dekrementowanie licznika b¹dzie miaBo posta: Mo|emy zmieni nasz przykBad w nast¹pujcy sposób: Po uruchomieniu tego skryptu p¹tla wykona odliczanie od 10 do 1, jak pokazano na rysunku 3.11. un Dekrementacja licznika w ptli for od 10 do 1 Innym sposobem wykonania p¹tli jest instrukcja : Na pocztku przypisywana jest warto[ pocztkowa zmiennej  w naszym przykBadzie jest to 1: Nast¹pnie wykonywana jest p¹tla do chwili, gdy warto[ licznika osignie 10: Podobnie jak w przypadku p¹tli mo|esz u|y ró|nych operatorów porównania. We- wntrz p¹tli warto[ zmiennej jest inkrementowana: Oczywi[cie mo|esz równie| zastosowa podobn metod¹ jak w naszym drugim przy- kBadzie z p¹tl  dekrementowa warto[ licznika. Po uruchomieniu skryptu p¹tla odlicza od 1 do 10, jak pokazano na rysunku 3.12. un lnkrementowana ptla while odliczajca od 1 do 10 PHP umo|liwia sterowanie wykonaniem p¹tli za pomoc instrukcji : II Przedstawiona p¹tla wyglda podobnie jak p¹tla . Po uruchomieniu skryptu wykonane zostanie liczenie od 1 do 10, a nast¹pnie p¹tla zostanie zakoDczona. Czym si¹ w takim razie ró|ni od p¹tli ? Ró|nica pomi¹dzy tymi p¹tlami polega na lokalizacji instrukcji . W p¹tli warto[ zmiennej licznika jest modyfikowana (w naszym przy- kBadzie jest inkrementowana), a nast¹pnie warto[ tej zmiennej jest sprawdzana. W p¹tli warto[ zmiennej jest testowana, a nast¹pnie zmieniana. Istotny jest moment zmiany licznika i moment jego sprawdzenia. Tutaj zmienna przy warto[ci 1 nigdy nie jest sprawdzana, poniewa| przed sprawdzeniem jest inkrementowana do warto[ci 2. Tablica zapewnia uporzdkowany sposób przechowywania danych, do których mo|na si¹ w prosty sposób odwoBywa. Na rysunku 3.13 wida, |e tablica wyglda jak talia numerowanych kart, a na ka|dej karcie jest wydrukowana warto[. Na przykBad karta 3 ma nadrukowan warto[ L. un Struktura tablicy Ka|da karta w naszym przykBadzie jest okre[lana jako element tablicy. Warto[ poszcze- gólnych elementów tablicy to warto[ tablicy, a do ka|dego elementu tablicy mo|na si¹ odwoBa poprzez klucz. W PHP dost¹pnych jest kilka sposobów obsBugi tablicy. Rozpoczynamy od utworzenia tablicy: Wykorzystywana jest zmienna typu . Mówi o tym nawias kwadratowy umieszczony za nazw zmiennej. Zauwa|, |e tablica zaczyna si¹ od pozycji 0; w PHP wszystkie tablice zaczynaj si¹ od tej pozycji. W naszym przykBadzie warto[ elementu jest równa E. Teraz, kiedy utworzona zostaBa tablica, musisz mie mo|liwo[ dost¹pu do jej ele- mentów. PHP umo|liwia odwoBanie do kolejnych elementów tablicy w nast¹pujcy sposób: P¹tla przechodzi przez kolejne elementy tablicy. Tablica jest dzielona na klucze elementów i warto[ci elementów za pomoc instrukcji , a nast¹pnie instrukcja pobiera warto[ci kolejnych elementów tablicy. Wewntrz p¹tli wy[wietlane s kolejne elementy tablicy: Po uruchomieniu skryptu wy[wietlone zostan kolejne elementy tablicy. Jako kluczy poszczególnych elementów tablicy nie musisz u|ywa liczb. Mo|esz u|ywa dowolnych warto[ci. Mo|emy zmieni powy|szy przykBad, zast¹pujc liczby literami: Mo|esz równie| wyszukiwa warto[ci w tablicy, posBugujc si¹ kluczem elementu: Powy|szy kod wyszukuje element tablicy o kluczu B i wy[wietla jego warto[, jak poka- zano na rysunku 3.14. II un Warto[ elementu tablicy wyszukana poprzez klucz tego elementu PHP umo|liwia równie| tworzenie tablicy za pomoc instrukcji : Zmienna zawiera tablic¹ utworzon za pomoc instrukcji . Instrukcja pozwala tworzy tablic¹ przez podanie kolejnych kluczy elementów i ich warto[ci. Po uruchomieniu skryptu zobaczysz zawarto[ struktury utworzonej przez instrukcj¹ , jak pokazano na rysunku 3.15. un Klucze i warto[ci elementów tablicy utworzonej przez instrukcj array Instrukcja samodzielnie nadaje klucze kolejnym elementom tablicy, je[li nie zostan one osobno zdefiniowane: W tym przykBadzie podali[my jedynie warto[ci elementów tablicy tworzonej instrukcj . Po uruchomieniu skryptu wida, |e instrukcja samodzielnie nadaBa klucze kolejnym elementom tablicy (patrz rysunek 3.16). un Klucze kolejnych elementów tablicy s automatycznie tworzone przy u|yciu instrukcji array n Zdarza si¹, |e tablica zawiera nieuporzdkowane elementy; warto[ci elementów i kluczy nie s umieszczone na kolejnych pozycjach tablicy i nale|y je uporzdkowa. Tworzenie fragmentów kodu, który wykonuje porzdkowanie tablicy mo|e by bardzo czasochBonne (nawet, je[li korzystamy z napisanych przez innych programistów fragmentów kodu). Na szcz¹[cie PHP zawiera zestaw instrukcji, które sBu| do tego celu. W kolejnych punktach omówimy cztery typy instrukcji przeznaczonej do sortowania tablicy wedBug warto[ci elementów tablicy lub ich kluczy. un Instrukcja pozwala posortowa warto[ci elementów tablicy w porzdku rosncym: II Powy|szy fragment kodu powoduje utworzenie tablicy za pomoc instrukcji , która samodzielnie nadaje klucze kolejnym elementom tablicy. Nast¹pnie skrypt wy[wietla zawarto[ nieuporzdkowanej tablicy, porzdkuje elementy tablicy i ponownie wy[wietla zawarto[ tablicy, tym razem ju| posortowan. un Zauwa|, |e podczas sortowania tablicy przy u|yciu instrukcji zmieniane s klucze elementów tablicy. Przed sortowaniem klucz 0 wskazywaB warto[ 5, natomiast po sor- towaniu ten sam klucz wskazywaB warto[ 1. Mo|esz zachowa pary klucz-wskazywany element, równocze[nie porzdkujc rosnco elementy tablicy. Jak? U|yj funkcji : W naszym kodzie podczas definiowania tablicy podawane s zarówno warto[ci elemen- tów, jak i ich klucze, jednak mo|esz równie| skorzysta z automatycznego nadawania kluczy przez wykorzystanie instrukcji , podobnie jak w poprzednim przykBadzie opisujcym instrukcj¹ . Nast¹pnie skrypt wy[wietla zawarto[ nieuporzdkowanej tablicy, sortuje elementy tablicy za pomoc instrukcji i ponownie wy[wietla za- warto[ tablicy, jak pokazano na rysunku 3.17. Elementy tablicy zostaBy uporzdkowane, ale powizania pomi¹dzy kluczami i elemen- tami tablicy pozostaBy niezmienione. Na przykBad klucz E wskazuje element tablicy o war- to[ 4 przed i po sortowaniu. un Tablica posortowana w porzdku rosncym z wykorzystaniem instrukcji asort, która nie modyfikuje powizaD kluczy z elementami tablicy un Mo|liwe jest równie| posortowanie elementów tablicy w porzdku malejcym za pomoc funkcji : Powy|szy przykBad dziaBa analogiczne jak przykBadowy skrypt opisujcy funkcj¹ . Funkcja sortuje tablic¹ w porzdku malejcym. II un PHP umo|liwia sortowanie kluczy tablicy w porzdku rosncym za pomoc funkcji : Powy|szy skrypt wyglda analogiczne jak poprzednie przykBady, z t ró|nic, |e wyko- rzystuje instrukcj¹ do porzdkowania tablicy. W tym przykBadzie kluczami elementów tablicy s litery. Po posortowaniu za pomoc instrukcji , klucze s sortowane w porzdku alfabetycznym. u u n n u u Moje pierwsze spotkanie z programowaniem miaBo miejsce na studiach. Moim nauczy- cielem byB Chris Pickford, a byB on jednym z najbardziej cierpliwych ludzi, jakich spo- tkaBem w |yciu. Chris dawaB z siebie wszystko, próbujc nauczy grup¹ niedo[wiadczonych, ale bardzo ch¹tnych, programistów podstaw i zalet programowania strukturalnego i nada- jcego si¹ do wielokrotnego wykorzystania kodu. Dopiero kiedy zaczBem |y z progra- mowania zrozumiaBem, jak wa|ne byBo to, czego nauczyB mnie Chris. Ten punkt dedykuj¹ Tobie, Chris. Kod strukturalny i kod wielokrotnego u|ytku pozwala rozbi program na uporzdkowane fragmenty, w celu efektywnego wykorzystania fragmentów kodu wewntrz aplikacji. Takie podej[cie jest korzystne, poniewa| aplikacja mo|e wielokrotnie wykonywa te same zadania, takie jak Bczenie si¹ z baz danych, wystawianie zapytania do bazy danych i wy[wietlanie danych otrzymanych z bazy danych. Podzielenie aplikacji na fragmenty pozwala zmniejszy mo|liwo[ wystpienia bB¹dów oraz skróci czas tworzenia aplikacji (oszcz¹dzanie czasu to zawsze wa|na rzecz). PHP pozwala dzieli kod na kilka sposobów przy wykorzystaniu funkcji, klas i doBczanych bibliotek. n un Korzystanie z funkcji to jeden z najprostszych sposobów dzielenia kodu na fragmenty, które mog by wielokrotnie wykorzystywane. W powy|szym przykBadzie utworzona zostaBa funkcja wy[wietlajca wiadomo[. Do funkcji jako argument przesyBane jest imi¹, które nast¹pnie jest umieszczane jako cz¹[ wy[wietlanej wiadomo[ci. Najpierw tworzona jest funkcja: Zauwa|, |e wyniki wykonania funkcji s zwracane w nast¹pujcy sposób: Innymi sBowy, instrukcja zwraca wyniki wykonania funkcji po jej wywoBaniu. Dlatego, aby pobra wyniki wykonania funkcji, nale|y zapisa je jako zmienn: W koDcu wy[wietlane s wyniki wykonania funkcji: Po uruchomieniu skryptu wy[wietlone zostan wyniki wywoBania funkcji. n n h nn u Za pomoc funkcji mo|na równie| modyfikowa zawarto[ przekazywanych do nich zmiennych. Przekazujc zmienn do funkcji, mo|esz zachowa niezmienion warto[ zmiennej po zakoDczeniu wykonywania funkcji (nazywane jest to przekazywaniem przez warto[) lub zmieni dane (nazywamy to przekazywaniem przez zmienn). II Powy|szy kod modyfikuje zmienn . Najpierw zmiennej nadawana jest warto[: Funkcja Bczy BaDcuch danych ze zmienn BaDcuchow przekazywan do funkcji: Nast¹pnie wywoBywana jest funkcja, do której argument jest przekazywany przez warto[ i wyniki dziaBania funkcji s wy[wietlane. Zauwa|, |e w PHP argumenty do funkcji s domy[lnie przekazywane przez warto[: Nast¹pnie ta sama funkcja jest wywoBywana z przekazaniem argumentu przez zmienn, a wynik dziaBania funkcji jest wy[wietlany. Aby przekaza do funkcji argument przez zmienn, nale|y doda znak przed zmienn przekazywan do funkcji (jak na przykBad ). Po uruchomieniu skryptu wida, |e przy wywoBaniu funkcji z przekazaniem argumentu przez warto[, warto[ zmiennej BaDcu- chowej pozostaje niezmieniona (patrz rysunek 3.18). Jednak przy przekazaniu argumentu przez zmienn, jej warto[ jest zmieniana. un 8 Wyniki przekazania argumentu przez warto[ i przez zmienn n PHP pozwala na rozbudowywanie i wielokrotne wykorzystanie napisanego fragmentu kodu w postaci obiektów. Obiekty PHP umo|liwiaj dzielenie kodu na segmenty, które w PHP s okre[lane jako klasy. Jest to kolejny krok w kierunku strukturyzacji i wielo- krotnego wykorzystania kodu, poniewa| umo|liwia caBkowite oddzielenie ró|nych cz¹[ci aplikacji. Rozdzielajc w ten sposób kod, programista ma pewno[, |e podczas testowania i uruchamiania segmentu kodu wszystkie potrzebne instrukcje i definicje znajduj si¹ w jednej klasie. Jak, w takim razie, korzysta z obiektów w PHP? Najpierw nale|y zdefiniowa klas¹ dla naszego obiektu: Nale|y tutaj wspomnie o kilku istotnych kwestiach. Po pierwsze, caBy kod dotyczcy klasy jest umieszczony wewntrz nawiasów funkcji klasy. Po drugie, zauwa|, |e funkcja u|yta w poprzednich przykBadach tego rozdziaBu, ponownie si¹ pojawia. Nie ma obowizku umieszczania definiowanych funkcji wewntrz klasy, ale jest to naturalny krok, je[li d|ysz do strukturyzacji kodu. Podobnie jak w poprzednich przykBadach, funkcja pobiera dane poprzez argument, dokleja dane do zmiennej i zwraca zmienn jako wynik dziaBania. W dalszej cz¹[ci tworzonego kodu mo|esz wykorzystywa zdefiniowan wcze[niej klas¹. W tym celu musisz najpierw stworzy kopi¹ obiektu i przypisa j do zmiennej. W jakim celu? Jest to kolejny krok w kierunku wielokrotnego wykorzystania fragmentu kodu. Mo|esz korzysta z tego samego obiektu, nadajc mu ró|ne warto[ci i uzyskujc ró|ne wyniki. Nie mo|esz jednak u|ywa tego samego obiektu, równocze[nie nadajc mu ró|ne warto[ci, dlatego musisz utworzy kilka kopii tego obiektu i u|ywa tych kopii. W naszym przykBadzie obiekt jest wykorzystywany tylko jeden raz, ale zasady skBadni pozostaj niezmienione. Kopia obiektu jest przypisana do zmiennej : II Teraz mo|esz korzysta z obiektu. W PHP obowizuje nast¹pujca skBadnia: W tym przykBadzie wywoBywana jest funkcja obiektu . Po uruchomieniu skryptu pojawi si¹ wyniki wywoBania funkcji wewntrz obiektu. Ten przykBad jest raczej prosty. Aby przedstawi zalety wynikajce z wykorzystania obiektów w PHP, musimy go rozbudowa: W tym przypadku klasa skBada si¹ z kilku elementów: Najpierw zdefiniowano zmienn wewntrz klasy. Na niej operuje kod znajdujcy si¹ wewntrz definicji klasy i dlatego jest okre[lana jako zmienna klasy. Musisz zadeklarowa zmienn klasy przy u|yciu instrukcji . Dzi¹ki temu PHP  wie , co jest zmienn, a co funkcj. W naszym przykBadzie obiekt zawiera dwie funkcje: Pierwsza z nich pobiera argument i przypisuje zmiennej klasy warto[ tego argumentu: Zwró uwag¹ na skBadni¹ przypisania zmiennej klasy: OdwoBanie dotyczy zmiennej zdefiniowanej w bie|cej klasie. U|ycie nast¹pujcej skBadni gwarantuje, |e odwoBanie dotyczy zmiennej klasy i PHP nie pomyli jej z inn zmienn znajdujc si¹ poza klas. Druga funkcja przekazuje warto[ zmiennej klasy poza klas¹. Kod wywoBujcy klas¹ speBnia dwa zadania. Najpierw tworzy kopi¹ klasy i wy[wietla warto[ zmiennej klasy: Nast¹pnie tworzy kolejn kopi¹ klasy i przekazuje warto[ funkcji w celu przypisania warto[ci zmiennej klasy. Ostatnim krokiem jest wy[wietlenie nowej warto[ci zmiennej klasy: Po uruchomieniu skryptu zobaczysz wyniki wykonania dwóch cz¹[ci skryptu; w pierwszej cz¹[ci warto[ zmiennej klasy pozostawaBa niezmieniona, w drugiej cz¹[ci widoczna jest nowa warto[ zmiennej klasy, jak pokazano na rysunku 3.19. II un Zmiana warto[ci zmiennej klasy u n W tym rozdziale pokrótce przyjrzeli[my si¹ ró|nym rodzajom edytorów w systemie Windows, za pomoc których mo|esz tworzy skrypty PHP. Omówili[my równie| pod- stawy j¹zyka PHP, takie jak skBadnia, zmienne, tablice, operatory logiczne i p¹tle, funkcje i obiekty. RozdziaB 4.,  PHP i pliki , po[wi¹cony jest wspóBpracy PHP z plikami oraz systemem plików Windows.

Wyszukiwarka

Podobne podstrony:
C Programowanie zorientowane obiektowo Vademecum profesjonalisty
Programowanie w systemie Windows Wydanie IV prowi4
Dodatkowe komendy wiersza poleceń systemu Windows XP Professional
PHP Zaawansowane programowanie Vademecum profesjonalisty
PHP i MySQL Tworzenie stron WWW Vademecum profesjonalisty Wydanie czwarte phmsv4
Programowanie w języku asembler w systemie Windows
PHP i MySQL Tworzenie stron WWW Wydanie drugie Vademecum profesjonalisty phms2v
Instalacja systemu Windows z pendrive a
Aktualizacja systemu Windows

więcej podobnych podstron