autor: Grzegorz Plebañski
Krótki kurs jêzyka PHP.
Wprowadzenie
Dla kogo jest ten kurs?
Pisz±c ten kurs zak³adam, ¿e czytaj±cy zna jêzyk HTML. Trudno mi powiedzieæ czy wystarczy umiejêtno¶æ pos³ugiwania siê edytorem HTML takim jak Front Page, Paj±czek itp. bo ¿adnego nie u¿ywam. Mile widziana by³aby znajomo¶æ podstaw programowania, chocia¿ my¶lê ¿e i bez tego kurs da siê zrozumieæ, chocia¿ mo¿e byæ sporo trudniej. Na pewno przyda siê te¿ serwer na którym bêdzie mo¿na umieszczaæ skrypty, ¿eby sprawdziæ ich dzia³anie. Je¿eli nie masz konta umo¿liwiaj±cego uruchamianie skryptów PHP, zajrzyj do zestawienia darmowych serwerów WWW. Dla u¿ytkowników Linuxa wystarczy zainstalowany Apache z modu³em do obs³ugi skryptów php. Serwer Apache mo¿na te¿ zainstalowaæ pod Windows - nied³ugo zamieszcze na stronie opis instalacji. Kurs jest o skryptach PHP 3.0 - nie wiem ile da siê u¿yæ w wersjach wcze¶niejszych, w pó¼niejszych wszystko powinno dzia³aæ.
Czym s± skrypty PHP?
Skrypty PHP s± to programy umieszczane w tre¶ci stron WWW. S± one wykonywane przez serwer przed wys³aniem strony do u¿ytkownika. Maj± bardzo du¿e moliwo¶ci, ale mimo to s± do¶æ proste. Bardzo ³atwa jest obs³uga formularzy za pomoc± skryptów PHP. Jedn± z najwiêkszych zalet skryptów PHP jest bardzo ³atwa integracja z wieloma bazami danych. Ten kurs opisuje jedynie wykorzystanie bazy Postgres SQL, ale obs³uga innych baz jest podobna. Oprócz tego skrypty PHP maj± wiele innych ciekawych mo¿liwo¶ci, jak dynamiczne tworzenie obrazków w formacie GIF, i mo¿liwo¶æ ³atwego wysy³ania plików na serwer. Dziêki temu skrypty PHP stanowi± ciekaw± alternatywê dla skryptów CGI pisanych w Perlu, czy innych jêzykach.
Jak umie¶ciæ skrypt na stronie
Skrypt PHP mo¿na umie¶ciæ w pliku HTML o rozszerzeniu ustalonym przez administratora serwera. Zwykle s± to pliki *.php3 dla wersji 3.x i *.php dla wersji 4.0. Fragment dokumentu który ma zastaæ zinterpretowany jako skrypt mo¿na zaznaczyæ na 4 sposoby:
1. <? (tre¶æ skryptu) ?>
2. <?php (tre¶æ skryptu) ?>
3. <script language="php"> (tre¶æ skryptu) </script>
4. <% (tre¶æ skryptu) %> (od wersji 3.0.4)
Wybór u¿ytego sposobu mo¿e zale¿eæ od innych rozszerzeñ jêzyka HTML, ewentualnie od ograniczeñ zastosowanego do tworzenia strony edytora (w tym wypadku zwykle u¿ywa siê sposobu 3).
Najprostszy skrypt
Na pocz±tku jedna uwaga: znaczniki <? i ?> mo¿na zast±piæ dowolnymi wymienionymi wy¿ej. W nastêpnych przyk³adach bêde je pomija³, podaj±c jedynie tre¶æ skryptu.
<? echo("To jest prosty skrypt PHP"); ?>
W miejscu gdzie zostanie wstawiony ten skrypt powinien pojawiæ siê napis To jest prosty skrypt PHP. Ten skrypt sk³ada siê tylko z jednej instrukcji. Instrukcje w skryptach PHP s± koñczone ¶rednikami. Znacznik koñca skryptu tak¿e koñczy instrukcjê, wiêc ¶rednika na koñcu tej lini mog³oby nie byæ. Dobrym zwyczajem jest jednak stawianie ¶rednika tak¿e po ostatniej instrukcji. Pomaga to w unikaniu pomy³ek - je¿eli teraz dopisze jakie¶ instrukcje na koñcu skryptu wszystko bêdzie w porz±dku. Gdyby ¶rednika nie by³o, pojawi³by siê b³±d.
Komentarze
Komentarz to wstawiany w skrypcie kawa³ek tekstu który jest po prostu ignorowany. Komentarze s± przydatne zw³aszcza przy pisaniu d³u¿szych skryptów, w których nie widaæ na pierwszy rzut oka co który fragment robi. Komentarze w skryptach PHP s± oznaczane tak jak w jêzyku C - znakami /* i */, np:
echo("Kawa³ek<BR>tekstu")
/* Poprzednia linia wy¶wietla w 2 liniach napis
"kawa³ek tekstu".
Nie jest to zbyt odkrywcze, ale w koñcu
chodzi o przyk³ad zastosowania komentarza ;-) */
Jak widaæ komentarz mo¿e mieæ na kilka lini.
Wykorzystanie zmiennych
W skryptach PHP wykorzystanie zmiennych jest du¿o prostsze ni¿ w wielu innych jêzykach. Nazwy zmiennych zawsze zaczynaj± siê od znaku $. Nie jest konieczne deklarowanie zmiennych, tak jak ma to miejsce w wielu innych jêzykach. Aby stworzyæ zmienn± wystarczy nadaæ jej jak±¶ warto¶æ, np:
$a=7;
$b="Jaki¶ tekst";
$c=2.654;
$d=0.0
Jeszcze s³owo wyja¶nienia na temat typów zmiennych. PHP obecnie obs³uguje nastêpuj±ce typy zmiennych:
integer - liczba ca³kowita
double - liczba rzeczywista
string - tekst
array - tablica
object - z³o¿one zmienne definiowane przez u¿ytkownika
pdfdoc (Tylko przy w³±czonej obs³udze dokumentów PDF)
pdfinfo (Tylko przy w³±czonej obs³udze dokumentów PDF)
Typ zmiennej jest okre¶lany automatycznie na podstawie przypisywanej warto¶ci. I tak w powy¿szym przyk³adzie $a ma typ integer, $b ma typ string a $c i $d maj± typ double (0 jest co prawda liczb± ca³kowit±, zle ka¿da liczba zawieraj±ca kropkê jest traktowana jako rzeczywista).
Jak widaæ na powy¿szym przyk³adzie, tekst powinien byæ zawsze ujêty w cudzys³owy. Je¿eli chcemy w tek¶cie umie¶ciæ cudzys³ów, nale¿y poprzedziæ go znakiem \. To samo dotyczy znaku $. W celu umieszczenia wewn±trz tekstu znaku \ nale¿y napisaæ \\. Aby umie¶ciæ w tek¶cie znaku nowej lini mo¿na u¿yæ sekwencji \n. Wewn±trz tekstu mo¿na te¿ u¿yæ zdefiniowanych wcze¶niej zmiennych:
$a=3;
$b="Jaka¶ warto¶æ";
$c="$a, $b";
Zmienna $c bêdzie mia³a warto¶æ "3, Jaka¶ warto¶æ".
Tablice
Tablica to wiele zmiennych u³o¿onych kolejno, do których mo¿na dostaæ siê za pomoc± indeksu. Tak samo jak w przypadku zwyk³ych zmiennych, aby stworzyæ tablicê wystarczy przypisaæ warto¶æ któremu¶ z jej pól:
$tablica[0]="warto¶æ pola 0";
$tablica[1]="warto¶æ pola 1";
$tablica[2]="warto¶æ pola 2";
$tablica[3]="warto¶æ pola 3";
$tablica[4]="warto¶æ pola 4";
Jako indeksu mo¿na u¿yæ innej zmiennej, np.
$indeks=3;
$tablica[$indeks]=27;
Operatory i wyra¿enia
Poprzedni przyk³ad ogranicza³ siê tylko do przypisania kilku zmiennym warto¶ci. Oczywi¶cie mo¿na na nich wykonywaæ dzia³ania:
$a=5;
$b=$a+2; /* $b ma warto¶æ 7 */
$b=$b+3; /* teraz $b ma warto¶æ 10 */
$b+=3; /* to ma efekt taki sam jak $b=$b+3, z tym ¿e
jest wyra¼niejsze w zapisiei szybciej dzia³a */
$c=2*$a+3*($b-$a); /* tego ju¿ chyba nie musze wyja¶niaæ */
W jednej lini mo¿na umie¶ciæ kilka przypisañ, np:
$a=$b=5;
Przypisania s± obliczane od prawej strony (w tym wypadku najpierw zmiennej $b przypisywana jest warto¶æ 5, potem zmiennej $a warto¶æ zmiennej $b).
PHP obs³uguje kilka typów porównañ. Porównanie ma warto¶æ 1 je¿eli warunek jest spe³niony, lub 0 gdy nie jest.
$a==$b - spe³nione gdy $a i $b s± równe. Nale¿y pamiêtaæ ¿e $a=$b jest operacj± przypisanie - zmiennej $a jest przypisywana warto¶æ $b, i ca³e wyra¿enie ma warto¶æ $b.
$a>$b - spe³nione gdy $a jest wiêksze od $b
$a>=$b - spe³nione gdy $a jest wiêksze lub równe $b
$a<$b - spe³nione gdy $a jest mniejsze od $b
$a<=$b - spe³nione gdy $a jest mniejsze lub równe $b
Tworzenie funkcji
W programach przyk³adowych by³y ju¿ u¿yte funkcje, chocia¿ nie by³o o tym mowy. Konkretnie by³a u¿yta funkcja echo. Jest to przyk³ad funkcji zdefiniowanej przez twórców jêzyka PHP. Ale mo¿na te¿ stworzyæ w³asn± funkcjê. Wygl±da to tak:
Function f($a, $b)
{
$a+=$b;
echo($a);
}
f(7, 2); /* teraz wykonaj± siê komendy
zawarte w tre¶ci funkcji. Zmienna
$a bêdzie mia³a warto¶æ 7, $b 2 */
Jak widaæ deklaracja funkcji zaczyna siê od s³owa Function. Nastêpnie podaje siê nazwê funkcji i w nawiasie listê parametrów oddzielonych przecinkami. Potem w nawiasach klamrowych nale¿y podaæ tre¶æ funkcji. W celu wywo³ania funkcji podaje siê jej nazwê i w nawiasach listê warto¶ci parametrów. Je¿eli nie przekazuje siê ¿adnych parametrów, i tak nale¿y po nazwie funkcji umie¶ciæ pusty nawias.
Funkcji nale¿y u¿ywaæ, gdy dany fragment kodu musi zostaæ wykonany w wielu miejscach. Dobrze jest te¿ d³u¿sze fragmenty skryptów umie¶ciæ w kilku funkcjach w celu zwiêkszenia przej¿ysto¶ci.
Zmienne w funkcjach
Kiedy zmienna jest zadeklarowana poza funkcj±, jej warto¶æ nie bêdzie widoczna w funkcji. Ilustruje to przyk³ad:
$a=5;
Function f()
{
echo($a);
}
f();
Wykonanie powy¿szego kodu nie spowoduje, jak mog³oby siê wydawaæ, wy¶wietlenia liczby 5. ¯eby zmienna globalna (w tym wypacku $a) by³a widoczna wewn±trz funkcji, nale¿y u¿yæ polecenia global:
$a=5;
Function f()
{
global $a;
echo($a);
}
f();
Po wykonaniu powy¿szego kodu w dokumencie pojawi siê liczba 5.
Je¿eli stworzymy zmienn± wewn±trz funkcji, jej warto¶æ bêdzie za ka¿dym wywo³aniem ustawiana od pocz±tku:
Function f()
{
$a=2;
echo($a);
$a++;
}
f();
f();
Wykonanie tego kodu spowoduje pojawienie siê dwa razy tego samego. Je¿eli chcemy, ¿eby zmienna nie traci³a warto¶ci po zakoñczeniu funkcji, nale¿y u¿yæ polecenia static:
Function f()
{
static $a=2;
echo($a);
$a++;
}
f();
f();
Teraz w dokumencie pojawi siê najpierw liczba 2, potem 3.
Zwracanie warto¶ci
Funkcja mo¿e zwróciæ warto¶æ. u¿ywa siê do tego polecenia return:
Function f($p)
{
return 3*$p;
}
$a=f(7);
echo($a); /* $a ma warto¶æ 21 */
/* mo¿na te¿ od razu echo(f(7)); */
Ten skrypt wy¶wietli liczbê 21.
Po zwróceniu warto¶ci koñczy siê wykonanie funkcji:
Function f()
{
return 3;
echo("Ten tekst siê nie wy¶wietli");
}
Po wykonaniu polecenia return koñczy siê dzia³anie funkcji i funkcja echo nie jest wywo³ywana.
(C)opyright 1999-2000 by Grzegorz Plebañski
ygreg@and.pl
http://ygreg.and.pl
|