लापता http://www.php.net/manual/en/reserved.variables.globals.php के अनुसार:
एक साहचर्य सरणी सभी चर जो वर्तमान में स्क्रिप्ट के वैश्विक दायरे में परिभाषित कर रहे हैं के संदर्भों वाले।
तो, निम्नलिखित कोड है कि $ वैश्विक वर _SERVER
, _ENV
है प्रदर्शित करना चाहिए _REQUEST
कुंजी (अगर यह php.ini में variables_order में सक्षम किया गया है) और:
var_dump($GLOBALS);
परिणाम है:
- nginx + php-एफ पी एम के तहत: लापता
_SERVER
,_ENV
,_REQUEST
- CLI के तहत:
_ENV
लापता,_REQUEST
हम्म .. शायद वहाँ इस व्यवहार के बारे डॉक्स में बराबर है? मैं हर चर के लिए हर पृष्ठ के माध्यम से देखा है:
_SERVER
: http://www.php.net/manual/en/reserved.variables.server.php_ENV
: http://www.php.net/manual/en/reserved.variables.request.php_REQUEST
: http://www.php.net/manual/en/reserved.variables.request.php
और मुझे कोई मिल गया है इस तरह के व्यवहार के बारे में उल्लेख है। ऐसा क्यों काम करता है?
मैंने http://www.dotdeb.org/ रेपो से डेबियन पैकेज का उपयोग करके PHP स्थापित किया है (कुछ भी मैन्युअल रूप से संकलित नहीं किया गया था) ... वर्तमान में nginx + php5-fpm के साथ चल रहा है। क्या यह एक php बग है?
और यदि आपने 'var_dump ($ _ सर्वर) किया है, तो क्या होगा? – HamZa
मुझे यकीन नहीं है, लेकिन ['variables_order'] (http://www.php.net/manual/en/ini.core.php#ini.variables-order) इनआई सेटिंग –
$ _SERVER भी देखें एक सुपरग्लोबल वैरिएबल, जो $ ग्लोबल्स के समान है, यही कारण है कि यह $ ग्लोबल्स में संग्रहीत नहीं है: 'यह एक' सुपरग्लोबल 'है, या स्वचालित वैश्विक, चर। इसका मतलब यह है कि यह एक स्क्रिप्ट में सभी क्षेत्रों में उपलब्ध है।वैश्विक $ चर करने की कोई आवश्यकता नहीं है; इसे फ़ंक्शंस या विधियों के भीतर एक्सेस करने के लिए। 'और '$ _SERVER एक सरणी है जिसमें हेडर, पथ और स्क्रिप्ट स्थान जैसी जानकारी होती है। इस सरणी में प्रविष्टियां वेब सर्वर द्वारा बनाई गई हैं। इस बात की कोई गारंटी नहीं है कि प्रत्येक वेब सर्वर इनमें से कोई भी प्रदान करेगा; सर्वर कुछ छोड़ सकते हैं, या दूसरों को यहां सूचीबद्ध नहीं कर सकते हैं ... ' –