Saya mengalami masalah dalam memahami kumpulan aturan tentang jalur include relatif PHP. Jika saya menjalankan file A.PHP- dan file A.PHP menyertakan file B.PHP yang menyertakan file C.PHP, sebaiknya jalur relatif ke C.PHP terkait dengan lokasi B.PHP, atau ke lokasi A .PHP? Artinya, apakah penting dari file mana include dipanggil, atau hanya apa direktori kerja saat ini- dan apa yang menentukan direktori kerja saat ini? Jawaban: Ini relatif terhadap skrip utama, dalam hal ini A.php. Ingatlah bahwa
Tidak. Jika Anda ingin membuatnya penting, dan melakukan include terhadap B.php, gunakan
@Pekka membawa saya ke sana, tetapi hanya ingin membagikan apa yang saya pelajari:
Dengan menggunakan dua fungsi ini, Anda selalu dapat membuat jalur penyertaan yang sesuai dengan yang Anda butuhkan. Misalnya, jika b.php dan c.php berbagi direktori, b.php dapat menyertakan c.php seperti:
tidak peduli dari mana b.php dipanggil. Faktanya, ini adalah cara yang lebih disukai untuk membuat jalur relatif, karena kode tambahan membebaskan PHP dari keharusan melakukan iterasi melalui include_path dalam upaya untuk menemukan file target. Sumber: Perbedaan Antara getcwd () dan dirname (__ FILE__)? Yang mana yang harus saya gunakan? Mengapa Anda harus menggunakan dirname (__ FILE__)
The Diuji pada PHP 5.4.3 (Tanggal Pembuatan: 8 Mei 2012 00:47:34). (Perhatikan juga bahwa Jawaban Pekka yang diterima tidak lengkap dan, dalam konteks umum, menyesatkan. Jika file disediakan sebagai jalur relatif, konstruksi bahasa yang dipanggil Pertama, ini akan melalui jalur variabel lingkungan
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 Paragraf ini ditambahkan untuk mengomentari jawaban lain. Beberapa telah menyebutkan bahwa mengandalkan Jawaban singkat: ini relatif terhadap skrip penyertaan. TFM menjelaskannya dengan benar:
Jadi, jika /app/main.php mengatakan Itu ./ tidak benar-benar diperlukan, tetapi menghilangkan ketergantungan apapun pada include_path. Saya tidak akan mengandalkan menemukan file yang disertakan dalam direktori kerja saat ini jika seseorang mengubahnya dengan
Untuk menyertakan Untuk menyertakan |