簡體   English   中英

PHP $ GLOBALS缺少$ _SERVER

[英]PHP $GLOBALS missing $_SERVER

根據http://www.php.net/manual/en/reserved.variables.globals.php

一個關聯數組,包含對當前在腳本全局范圍內定義的所有變量的引用。

因此,以下代碼必須顯示$ GLOBALS var具有_SERVER_SERVER _ENV (如果在php.ini中的variables_order中啟用它)和_REQUEST鍵:

var_dump($GLOBALS); 

結果是:

  • 在nginx + php-fpm下:缺少_SERVER_SERVER _ENV_REQUEST
  • 在cli下:缺少_ENV_REQUEST

嗯..也許在這個行為的文檔中有smth? 我查看了每個變量的每個頁面:

  • _SERVERhttp_SERVER
  • _ENVhttp_ENV
  • _REQUESThttp_REQUEST

我沒有發現過這種行為。 它為什么這樣?

我已經使用http://www.dotdeb.org/ repo的debian軟件包安裝了php(沒有手動編譯)...目前運行的是nginx + php5-fpm。 這是一個php bug嗎?

我在php.net網站上創建了一個bug,php團隊回答: https ://bugs.php.net/bug.php?id = 65223

摘要:

這不是一個錯誤。 出於性能原因,默認情況下,超級全局變量(也稱為自動全局變量)不會添加到符號表中,除非解析器看到需要。

<?php $_SERVER; print_r($GLOBALS); ?>

會列出來的。 您也可以使用php.ini中的auto_globals_jit來控制它: http ://www.php.net/manual/en/ini.core.php#ini.auto-globals-jit

謝謝php團隊所以回答這么快!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM