Ludzie pragną czasami się rozstawać, żeby móc tęsknić, czekać i cieszyć się z powrotem.
".".$miesiac.". anno domini ".$rok; ?>
</title>
</head>
<body>
<h1>Na tym serwerze jest godzina
<?php echo $godziny.":".$minuty.":".$sekundy; ?>
</h1>
</body>
</html>
Po uruchomieniu tego pliku w przeglądarce, czyli po wpisaniu odpowiedniego adresu
URL w polu adresowym przeglądarki, zostanie wyświetlona strona WWW, w tytule której
można przeczytać bieżącą datę. W głównym oknie przeglądarki, obok tekstu zapisanego
w formacie charakterystycznym dla nagłówka pierwszego stopnia, zostanie wyświetlona
aktualna godzina (zobacz rysunek 4.1).
Rysunek 4.1. Dane wyjściowe pliku data.php w oknie przeglądarki
Dobrze byłoby zapoznać się z procesem, który zachodzi przed wyświetleniem opisywanej
strony: serwer otrzymuje od przeglądarki żądanie przesłania dokumentu data.php i po
rozszerzeniu (.php) rozpoznaje, że danym plikiem jest plik PHP. Ładuje zatem plik ze
swojego dysku twardego do pamięci i przetwarza go w interpreterze PHP. Jak już wspo-
mniano, wykonywane są te fragmenty pliku, które znajdują się między znacznikami
<?php i ?>. Stanowią one właściwy kod programu.
Pierwsza część programu, która jest wykonywana wiersz po wierszu, składa się (obok
znaczników i komentarza) z poniższych poleceń, z których każde jest zakończone zna-
kiem średnika.
$dataiczas = getdate();
$rok = $dataiczas["year"];
$miesiac = $dataiczas["mon"];
$dzien = $dataiczas["mday"];
$godziny = $dataiczas["hours"];
$minuty = $dataiczas["minutes"];
$sekundy = $dataiczas["seconds"];
Skrypt PHP wyświetlający datę
55
Czytelnikowi, który jeszcze nigdy nie pisał programów, powyższe wiersze kodu mogą
się wydać podobne do równań poznanych na lekcjach matematyki. W równaniach także
występowały liczne zmienne. Wiadomo również, że wyrażenie znajdujące się po lewej
stronie znaku równości równało się wyrażeniu znajdującemu się po jego prawej stronie.
A zmienną nazywa się symbol, mogący przyjmować różne wartości.
Jednak mimo że wiersze kodu PHP wyglądają jak równania, wcale nimi nie są. Jest to tak
zwany operator przypisania wartości. A jego działanie jest całkiem proste.
PHP może obliczać lub. konstruować prawą stronę operatora przypisującego wartość.
Wynikiem tych obliczeń, opracowań lub procesu konstruowania jest konkretna wartość
lub złożona struktura danych.
Po lewej stronie znaku równości standardowo znajduje się zmienna. W kodzie PHP jest
ona rozpoznawana po rozpoczynającym ją znaku dolara $ (patrz: ramka Zmienne). Może
przyjmować lub przechowywać pojedyncze wartości lub też skomplikowane struktury
danych. Operator przypisuje danej zmiennej konkretną wartość lub strukturę danych, któ-
re odpowiadają wyrażeniu znajdującemu się po prawej stronie znaku równości.
Zmienna przechowuje tę wartość lub strukturę danych do momentu przypisania jej nowej
wartości (lub struktury danych) albo do zakończenia wykonywania skryptu.
W opisywanym przykładzie pierwsze polecenie wykonuje operację wywołania tzw. funk-
cji. W tym przypadku jest to funkcja getdate(), będąca jedną z wielu funkcji wbudowa-
nych w PHP. Funkcje zostaną dokładniej omówione nieco później. W tym momencie wystarczy zapamiętać, że funkcja w kodzie PHP — po jej wykonaniu — zawsze zastę-
powana jest zwracaną przez nią wartością.
Funkcja getdate() zwraca tzw. tablicę asocjacyjną (array) do interpretera PHP. Tablica
tego typu jest przykładem nieco bardziej kompleksowej struktury danych. Za chwilę opiszemy ją nieco dokładniej. W prezentowanym poleceniu przypisującym wartość najpierw zapisano tablicę w zmiennej PHP $dataiczas. W ten sposób zmienna $dataiczas
sama staje się tablicą asocjacyjną.
Tablica asocjacyjna przechowuje wartości danych każdorazowo pod tzw. kluczem (key).
Dzięki większej liczbie kluczy można w jednej tablicy (a zatem w jednej zmiennej) prze-
chowywać dowolną ilość danych. Klucz może składać się z dowolnego ciągu znaków
(string). W opisywanym przypadku funkcja getdate() sprawia, że pod kluczem hours
jest przechowywana liczba oznaczająca aktualną godzinę, a pod kluczem mday — dany
dzień miesiąca (np. 23). W zasadzie sprawa jest prosta, czyż nie?
Być może Czytelnik zastanawia się, w jaki jednak sposób wydobyć konkretne wartości
z tablicy asocjacyjnej? O tym za chwilę. Dla wygody interesujące wartości tablicy zapisuje się w pojedynczych zmiennych ($rok, $miesiac itd.). Dzięki temu nie trzeba później odwoływać się do asocjacyjnej składni tablicy.
56
Rozdział 4. Wstęp do programowania: proste skrypty PHP
Polecenia, które powodują przekopiowanie wartości tablicy do pojedynczych zmiennych,
ilustrują odpowiednią składnię tablicy, np. w poleceniu: