PHP #1
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.0 i *.phtml dla wersji wcze╢niejszych.
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:
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.
Grzegorz 'Ygreg' Plebanski
ygreg@and.pl
http://ygreg.and.pl
|