Jawaban Pekka yang diterima tidak lengkap dan, dalam konteks umum, menyesatkan. Jika file disediakan sebagai jalur relatif, konstruksi bahasa yang dipanggil include
akan mencarinya dengan cara berikut.
Pertama, ini akan melalui jalur variabel lingkungan include_path
, yang dapat disetel dengan ini_set
. Jika gagal, ia akan mencari di direktori skrip pemanggil itu sendiri dirname(__FILE__)
( __DIR__
dengan php> = 5.3.) Jika ini juga gagal, barulah ia akan mencari di direktori kerja! Ternyata, secara default, variabel lingkungan include_path
dimulai dengan .
, yang merupakan direktori kerja saat ini. Itulah satu-satunya alasan mengapa ia mencari pertama kali di direktori kerja saat ini. Lihat http://php.net/manual/en/function.include.php .
File disertakan berdasarkan jalur file yang diberikan atau, jika tidak ada yang diberikan, include_path ditentukan. Jika file tidak ditemukan di include_path, include akhirnya akan memeriksa direktori skrip pemanggil itu sendiri dan direktori kerja saat ini sebelum gagal.
Jadi, jawaban yang benar untuk bagian pertama dari pertanyaan ini adalah bahwa penting di mana berada skrip panggilan yang disertakan. Jawaban untuk bagian terakhir dari pertanyaan ini adalah bahwa direktori kerja awal , dalam konteks server web, adalah direktori dari skrip yang disebut, skrip yang mencakup semua yang lain saat ditangani oleh PHP. Dalam konteks baris perintah, direktori kerja awal adalah apa pun itu ketika php dipanggil pada prompt, tidak harus direktori tempat skrip yang dipanggil berada. The saat direktori kerja, bagaimanapun, dapat diubah pada waktu berjalan dengan fungsi PHP chdir
. Lihat http://php.net/manual/en/function.chdir.php .
Paragraf ini ditambahkan untuk mengomentari jawaban lain. Beberapa telah menyebutkan bahwa mengandalkan include_path
kurang kuat dan oleh karena itu lebih disukai menggunakan jalur lengkap seperti ./path
atau __DIR__ . /path
. Beberapa orang bahkan mengatakan bahwa mengandalkan direktori kerja .
itu sendiri tidak aman, karena dapat diubah. Namun, terkadang, Anda perlu mengandalkan nilai lingkungan. Misalnya, Anda mungkin ingin include_path
mengosongkan, sehingga direktori skrip pemanggil adalah tempat pertama yang akan dicari, bahkan sebelum direktori kerja saat ini. Kode mungkin sudah ditulis dan diperbarui secara teratur dari sumber eksternal dan Anda tidak ingin memasukkan kembali awalan __DIR__
setiap kali kode diperbarui.