W uproszczeniu możesz mieć trzy rodzaje ścieżek do pliku:
Kod
/var/www/moja-strona/moj-katalog/moj-plik
./moja-strona/moj-katalog/moj-plik
moja-strona/moj-katalog/moj-plik
I teraz:
1. Ścieżka bezwzględna, która nie jest w żaden sposób modyfikowana/przetwarzana - po prostu wskazuje konkretnie na plik.
2. Ścieżka względna zaczynająca się od "aktualny katalog" (kropka) i podająca dalszą ścieżkę względem niego. Jeżeli Twój program został uruchomiony z katalogu /var/www finalnie ścieżka będzie taka sama jak ta z punktu pierwszego. Ale jeżeli znajdowałbyś się w katalogu /home/moj-uzytkownik finalną ścieżką byłoby /home/moj-uzytkownik/moja-strona/moj-katalog/moj-plik.
3. W tym przypadku wykorzystane zostanie właśnie
include_path. W tej dyrektywie znajduje się kilka ścieżek do różnych katalogów, np. /var/www, /home/moj-uzytkownik oraz /var/lib/zend. W takim przypadku system spróbuje wyszukać plik w /var/www/moja-strona/moj-katalog/moj-plik - jeżeli taki nie istnieje przejdzie dalej, /home/moj-uzytkownik/moja-strona/moj-katalog/moj-plik - jeżeli taki plik nie istnieje znowu spróbuje dalej, /var/lib/zend/moja-strona/moj-katalog/moj-plik jeżeli taki plik istnieje dołączy go, jeżeli nie uzna, że podany plik nie istnieje.
Zauważ, że zapewne Zend stosuje zapisy:
require_once 'Zend/Some/Class.php';
To jest właśnie trzeci przypadek.