Mengapa tatasusunan $_ENV saya kosong dan mengapa pembolehubah persekitaran muncul dalam $_SERVER?

Mary-Kate Olsen
Lepaskan: 2024-11-08 09:45:02
asal
822 orang telah melayarinya

Why is my $_ENV array empty and why are environment variables appearing in $_SERVER?

Mengapa Pembolehubah $_ENV Kosong dan Kemunculan $_SERVER Misterius?

Dalam isu PHP yang membingungkan ini, pengguna menghadapi tatasusunan $_ENV kosong walaupun menetapkan pembolehubah persekitaran dalam fail .htaccess mereka. Selain itu, pembolehubah secara tidak dapat diterangkan muncul dalam tatasusunan $_SERVER dalam cara yang kelihatan diduakan.

Akar Masalah:

  1. $ _ENV Disembunyikan secara Lalai:

    • arahan pembolehubah_perintah php.ini, biasanya ditetapkan kepada "GPCS," tidak termasuk "E" (ENV) secara lalai. Mengubah suai tetapan ini kepada "EGPCS" membolehkan $_ENV.
  2. SetEnv Variables Land in $_SERVER:

    • Menetapkan persekitaran pembolehubah menggunakan SetEnv dalam .htaccess meletakkannya dalam tatasusunan $_SERVER, bukan dalam $_ENV.

Penduaan Misterius:

  • Pembolehubah muncul dua kali dalam $_SERVER ([REDIRECT_FOO] dan [FOO]) kerana Apache memberi awalan nama pembolehubah asal dengan REDIRECT_ jika ia berasal dari persekitaran.

Penyelesaian Alternatif:

  • Fungsi getenv() kekal tidak terjejas oleh tetapan php.ini dan sentiasa mengembalikan nilai yang betul, tanpa mengira kepekaan huruf besar kecil.

Ringkasan :

Memahami tetapan dan perbezaan tingkah laku ini membantu merungkai misteri mengapa $_ENV boleh kosong dan sebab pembolehubah persekitaran berakhir di $_SERVER. Ingat untuk mengubah suai variables_order jika anda memerlukan $_ENV diisi dan gunakan getenv() untuk mendapatkan semula pembolehubah persekitaran yang boleh dipercayai.

Atas ialah kandungan terperinci Mengapa tatasusunan $_ENV saya kosong dan mengapa pembolehubah persekitaran muncul dalam $_SERVER?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan