Rozdział 2. * Znaczniki, zmienne i typy danych 27
JOisi | |||
E* Edycja Widok Przejdź Zakładki Narzędzia Pomoc | |||
i# @ f 1 |
A © |a | ||
^ Rozpocznij przygód... , Aktualności |
Przed wywołaniem include...
Warning: main(abc.php) ffiinction.mainl: failed to open stream: No such file or directory in E:\l\index.php on linę 8
Warning: mainO ffunction.includel: Failed opening 'abc.php' for inclusion (include_path=l.;C:\php5\pear') in E:\l\index.php on Ene 8
Po wywołaniu include...
Przed wywołaniem reąuire...
Warning: main(abc.php) rfunction.mainl: failed to open stream: No such file or directory in E:\l\index.php on linę 11
Fatal error: mainO ffunction.requirel: Failed opening reąuired 'abc.php' (jnclude_path— .;C:\php5\pear') in E:\l\index.php on lmell
Rysunek 2.2. Różnice w działaniu instrukcji include i reąuire
Zawarte w kodzie instrukcje echo pozwalają na obserwację, kiedy zostały wykonane poszczególne części skryptu. Zauważmy, że choć wykonanie instrukcji includeC"abc.php"); powoduje wygenerowanie dwóch ostrzeżeń (ang. warning), skrypt działa nadal. Widzimy bowiem, że zostały wykonane występujące po include instrukcje echo. Zupełnie inaczej jest w przypadku instrukcji requi re( "abc.php");. Ponieważ nie istnieje plik abc.php, wywołanie zakończyło się błędem (fatal error) i skrypt zakończy działanie. Nie została więc wykonana występująca po requi re instrukcja echo.
Wykorzystując instrukcję include i require należy zwrócić uwagę na kilka kwestii. Musimy wiedzieć, że pliki, które mają być dołączane za ich pomocą, muszą znajdować się w określonych lokalizacjach. Konkretne katalogi muszą być wymienione w pliku konfiguracyjnym php.ini. Znajdująca się w nim zmienna include_path powinna mieć postać:
include_path = "katalogl:katalog2:katalog3" w przypadku systemu Linux lub:
include_path = "katalogl:katalog2:katalog3" w przypadku systemu Windows.
Ponieważ najczęściej plik dołączany umieszczamy w tym samym katalogu, co plik, do którego ma on być dołączony (tak jak w poprzednim przykładzie, w którym pliki index.php i skrypt.php były w katalogu głównym serwera WWW), najlepiej jeśli wśród wymienionych katalogów znajdzie się określenie katalogu bieżącego, czyli znak . (kropka), np.:
include_path = ".:/php/includes"