Rumah > pembangunan bahagian belakang > tutorial php > Mengapa tatasusunan $_ENV saya kosong dan mengapa pembolehubah persekitaran muncul dalam $_SERVER?

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

Mary-Kate Olsen
Lepaskan: 2024-11-08 09:45:02
asal
919 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!

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