include
Wyrażenie include dołącza i wykonuje
określony plik
Dokumentacja poniżej odnosi się także do require.
Pliki są dołączane, bazując na podanej ścieżce lub jeśli jej nie określono, na
ustawieniu include_path. Jeżeli plik
nie zostanie znaleziony w include_path,
include sprawdzi jeszcze katalog aktualnie uruchamianego
skryptu i obecny katalog roboczy przed zwróceniem błędu. Konstrukcja
include wyemituje
E_WARNING jeżeli
nie znajdzie pliku; jest to zachowanie odmienne od
require, który zgłosi
E_ERROR.
Zarówno include jak i require
dodatkowo zgłoszą E_WARNING, jeżeli dostęp do pliku
moe powiedzie się, jeszcze przed zgłoszeniem finalnego E_WARNING lub
E_ERROR.
Jeżeli ścieżka jest zdefiniowana — czy to absolutna (zaczynająca się literą
dysku lub \ na Windows, lub / w systemach
Unix/Linux), czy względna do obecnego katalogu (zaczynająca się znakami
. lub ..) —
include_path zostanie zignorowane.
Przykładowo, jeżeli nazwa pliku zaczyna się od ../,
parser sprawdzi katalog nadrzędny w poszukiwaniu zażądanego pliku.
Aby dowiedzieć się więcej o tym, jak PHP obsługuje dołączanie plików i include path,
zobacz dokumentację dla include_path.
Kiedy plik jest dołączony, kod który zawiera, dziedziczy
zasięg zmiennych linii,
w której wystąpiła instrukcja include. Wszystkie zmienne dostępne w linii,
która odwołuje się do pliku, będą od tego momentu dostępne w dołączonym pliku.
Jednakże, wszystkie funkcje i klasy zdefiniowane w dołączonym pliku będą miały
zasięg globalny.
Przykład użycia include
test.php
]]>
Jeżeli include występuje wewnątrz funkcji, w pliku dołączającym,
to cały kod zawarty w dołączanym pliku będzie się zachowywał tak, jakby
był zdefiniowany wewnątrz tej funkcji. Otrzyma więc zasięg zmiennych
tej funkcji. Wyjątkiem od tej reguły są stałe magiczne, które są
wykonywane przez parser, zanim plik zostanie dołączony.
Dołączanie pliku wewnątrz funkcji
]]>
Kiedy plik jest dołączany, parser wychodzi z trybu PHP, wchodzi
w tryb HTML na początku dołączanego pliku i powraca do PHP
na jego końcu. Z tego powodu, kod w dołączanym pliku, który
powinien być wykonany jako PHP, musi być otoczony
poprawnymi
tagami PHP.
Jeżeli "nakładki dołączanych URL"
zostały włączone w PHP,
możesz określik plik do dołączenia jako URL (przez HTTP lub
inny wspierany wrapper - zobacz , aby zapoznać się z
listą protokołów) zamiast lokalnej ścieżki. Jeżeli docelowy serwer interpretuje
dołączany plik jako kod PHP, można przekazać zmienne do dołączanego pliku
używając łańcucha zapytania URL i metody HTTP GET. Nie jest to
dokładnie to samo, co dołączanie pliu i dziedziczenie przez niego
zasięgu zmiennych pliku nadrzędnego; skrypt jest najpierw
wykonywany na zdalnym serwerze i jego wynik jest później
dołączany do skryptu lokalnego.
include przez HTTP
]]>
Ostrzeżenie bezpieczeństwa
Zdalny plik może być przetworzony na zdalnym serwerze (zależnie od rozszerzenia
pliku i faktyczu czy zdalny serwer obsługuje PHP), ale musi on wciaż
wyprodukować poprawny skrypt PHP ponieważ będzie przetwarzany na
lokalnym serwerze. Jeżeli plik ze zdalnego serwera powinien być przetworzony
tutaj i tylko wyświetlony, readfile jest znacznie
lepszą funkcją do użycia. W przeciwnym wypadku, powinno się szczególnie zadbać o
bezpieczeństwo zdalnego skryptu, tak aby wyprodukował poprawny i pożądany kod.
Zobacz także Zdalne pliki,
fopen i file dla powiązanych
informacji.
Obsługa zwracanych wartości: include zwraca
FALSE i generuje ostrzeżenie w wypadku błędu. Pomyślne
dołączenie, o ile nie zostało nadpisane przez dołączany plik, zwraca
1. Jest możliwe wykonanie instrukcji return
w dołączanym pliku, aby zatrzymać jego przetwarzanie i powrócić
do skryptu, który go dołączył. Jest także możliwe zwracanie
wartości z dołączanych plików. Możesz skorzystać z wartości
wywołania include, tak jak z wartości normalnej funkcji. Nie jest to jednakże
możliwe przy dołączaniu plików zdalnych, dopóki wyjście zdalnego pliku
zawiera poprawne tagi
PHP (tak jak z dowolnym lokalnym plikiem). Możesz zadeklarować
potrzebne zmienne w tych tagach i będą one utworzone
w momencie dołączenia pliku.
Ponieważ include jest specjalną konstrukcją języka,
nawiasy wokół argumentu nie są wymagane. Zwróć na to uwagę przy porównywaniu
zwracanej wartości
Porównywanie wartości zwróconej przez include
]]>
include i instrukcja return
noreturn.php
testreturns.php
]]>
$bar ma wartość 1, ponieważ dołączenie było
pomyślne. Zauważ różnicę między powyższymi przykładami. Pierwszy używa
return wewnątrz dołączanego pliku, a drugi nie.
W wypadku gdy plik nie może być dołączany, zwracane jest &false; i
zgłaszany jest błąd E_WARNING.
Jeżeli w dołączanym pliku zdefiniowano funkcję, mogą one być użyte w
w pliku głównym, niezależnie czy znajdują się przed, czy za return.
Jeżeli plik jest dołączany dwa razy, PHP zgłasza błąd krytyczny, ponieważ funkcje
zostały już zadeklarowane.
Zaleca się użycie include_once zamiast
sprawdzania, czy plik został już dołączony i warunkowego zwracania
w dołączanym pliku.
Innym sposobem "dołączenia" pliku PHP do zmiennej jest pokrycie
wyjścia za pomocą Funkcji Kontroli
Wyjścia użytych include. Na przykład:
Użycie buforowania wyjścia do załączenia pliku PHP jako ciąg
]]>
Aby automatycznie dołączyć pliki wewnątrz skryptu, zobacz opcje
auto_prepend_file i
auto_append_file
w &php.ini;.
¬e.language-construct;
Zobacz także require, require_once,
include_once, get_included_files,
readfile, virtual i
include_path.