|
|
PHP (angielski akronim rekurencyjny, którego rozwinięcie to PHP Hypertext Preprocessor), pierwotnie nazwany Personal
Home Page - skryptowy język programowania, służący przede wszystkim do tworzenia dynamicznych stron WWW i wykonywany w
tym przypadku po stronie serwera, z możliwością zagnieżdżania w HTML (bądź XHTML). PHP jest podobny w założeniach do
dużo starszego mechanizmu SSI (Server Side Includes), jednak jest w stosunku do SSI nieporównanie bardziej rozbudowany.
Udostępniany jest na zasadach licencji open-source. Jego składnia bazuje na językach C, Java i Perl.
SQL (ang. Structured Query Language) to strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz
do umieszczania i pobierania danych z baz danych.
Język SQL jest językiem deklaratywnym. Decyzję o sposobie przechowywania i pobrania danych pozostawia się systemowi
zarządzania bazą danych DBMS.
Jest to język programowania opracowany w latach siedemdziesiątych w firmie IBM. Stał się on standardem w komunikacji z
serwerami relacyjnych baz danych. Wiele współczesnych systemów relacyjnych baz danych używa do komunikacji z
użytkownikiem SQL, dlatego mówi się, że korzystanie z relacyjnych baz danych, to korzystanie z SQL-a.
Apache jest otwartym serwerem HTTP dostępnym dla wielu systemów operacyjnych (m.in. UNIX, GNU/Linux, BSD,
Microsoft Windows). Po angielsku słowo Apache wymawia się epaczi, co brzmi tak samo jak a patchy (server), co było
określeniem tego serwera we wczesnym stadium jego rozwoju w 1995 roku, kiedy był on głównie zbiorem poprawek (patch)
nałożonych na serwer HTTP o nazwie NCSA.
Apache jest najszerzej stosowanym serwerem HTTP w Internecie. W maju 2003 jego udział wśród serwerów wynosił 62%. W
połączeniu z interpreterem języka skryptowego PHP i bazą danych MySQL, Apache stanowi jedno z najczęściej spotykanych
środowisk w firmach oferujących miejsce na serwerach sieciowych.
|
Funkcja może być zdefiniowana używając składni takiej jak
poniższa:
Przykład 17-1. Pseudo-kod ilustrujący
zastosowanie funkcji
<?php function foo ($arg_1, $arg_2, /* ..., */ $arg_n)
{
echo "Przykładowa funkcja.\n";
return $retval;
} ?> |
|
Dowolny poprawny kod PHP może się pojawić wewnątrz
funkcji, także definicje innych funkcji i klas.
Nazwy funkcji podlegają takim samym ograniczeniom jak
wszystkie inne etykiety w PHP. Poprawna nazwa funkcji zaczyna
się od litery lub podkreślenia, po których następuje dowolna
liczba liter, liczb lub podkreśleń. Powyższa zasada w postaci
wyrażenia regularnego przedstawia się następująco:
[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.
W PHP 3, funkcje muszą być zdefiniowane przed odwołaniem
do nich. W PHP 4 nie ma takiego wymagania. Wyjątkiem jest
warunkowe definiowanie funkcji, tak jak pokazano to w dwóch
przykładach zamieszczonych poniżej.
Kiedy funkcja jest definiowana w postaci warunkowej, tak
jak to przedstawiono na dwóch poniższych przykładach, jej
definicja musi następować przed jej wywołaniem.
Przykład 17-2. Funkcje warunkowe
<?php
$makefoo = true;
/* Nie można wywołać foo() z tego miejsca,
ponieważ funkcja ta jeszcze nie istnieje.
Można natomiast wywołać bar() */
bar();
if ($makefoo) {
function foo()
{
echo "Nie istnieję dopóki wykonanie programu nie dojdzie do tego miejsca.\n";
}
}
/* W tym momencie można spokojnie wywołać foo()
ponieważ $makefoo ma wartość true */
if ($makefoo) foo();
function bar()
{
echo "Istnieję od samego początku działania programu.\n";
}
?> |
|
Przykład 17-3. Funkcje wewnątrz funkcji
<?php function foo()
{
function bar()
{
echo "Nie istnieję dopóki foo() nie zostanie wywołana.\n";
}
}
/* Nie można wywołać bar()
ponieważ nie istnieje. */
foo();
/* Teraz można wywołać bar(),
ponieważ wywołanie foo() utworzyło
tą funkcję. */
bar();
?> |
|
Wszystkie funkcje i klasy w PHP mają zasięg globalny -
można je wywołać spoza ciała funkcji, nawet jeśli zostały w
niej zdefiniowane, i vice versa.
PHP nie obsługuje przeciążania funkcji. Nie jest także
możliwa od-definiowanie lub przedefiniowanie wcześniej
zadeklarowanych funkcji.
Notatka: W nazwach funkcji nie jest istotna
wielkość znaków, jednakże dobrze jest wywoływać funkcje
tak, jak zostały zdeklarowane.
PHP 3 nie obsługuje funkcji o zmiennej liczbie argumentów,
ale obsługuje domyślne argumenty (zobacz rozdzial Wartości
domyślne argumentów aby uzyskać więcej informacji). Od
wersji PHP 4 obsługiwane są jedne i drugie: zobacz Listy
argumentów o zmiennej długości i opisy funkcji func_num_args(), func_get_arg(), i func_get_args() aby uzyskać więcej
informacji.
W PHP możliwe jest rekurencyjne wywoływanie funkcji.
Należy jednak unikać rekurencyjnych wywołań funkcji lub metod
o głębokości większej niż 100-200 poziomów, gdyż może to
zniszczyć stos i spowodować przerwanie działania skryptu.
Przykład 17-4. Funkcje rekurencyjne
<?php function rekurencja($a)
{
if ($a < 20) {
echo "$a\n";
rekurencja($a + 1);
}
} ?> |
|
|