2013-07-05 7 views
7

PHP में, मैं कैसे परीक्षण करूं कि पर्यावरण चर सेट किया गया है या नहीं? मैं इस तरह व्यवहार करना चाहते हैं:मैं कैसे जांचूं कि PHP में एक पर्यावरण चर सेट है या नहीं?

// Assuming MYVAR isn't defined yet. 
isset(MYVAR); // returns false 
putenv("MYVAR=foobar"); 
isset(MYVAR); // returns true 

उत्तर

17

getenv()false देता है यदि पर्यावरण चर सेट नहीं है। निम्नलिखित कोड काम करेगा:

// Assuming MYVAR isn't defined yet. 
getenv("MYVAR") !== false; // returns false 
putenv("MYVAR=foobar"); 
getenv("MYVAR") !== false; // returns true 

क्योंकि getenv() सामान्य रूप से एक स्ट्रिंग है एक बूलियन के रूप में कास्ट किया जा सकता है रिटर्न सख्त तुलना ऑपरेटर (!==) का उपयोग सुनिश्चित करें।

-4

यह तुम क्या जरूरत है

$var = getenv(MYVAR) 
    if(isset($var)) { 

    } else { 

    } 
+6

'जारीकर्ता ($ var)' इस मामले में हमेशा सत्य है। – wecsam

+0

चूंकि getvar() सेट नहीं होने पर झूठी रिटर्न देता है, इसलिए $ var सेट होने के बाद से जारी हमेशा सत्य वापस आ जाएगा, लेकिन झूठी पर सेट है। – nickdnk

3

आप वातावरण चर का मान देता है इस

if($ip = getenv('REMOTE_ADDR')) 
echo $ip; 

getenv तरह जांच कर सकते हैं() है।

+1

'REMOTE_ADDR' हमेशा सेट नहीं है? मेरे मामले में, मैं एक स्क्रिप्ट लिख रहा हूं जिसे सर्वर पर एक पर्यावरण परिवर्तनीय सेट के आधार पर अलग-अलग कार्य करने की आवश्यकता है। – wecsam

+0

@wecsam REMOTE_ADDR सिर्फ एक उदाहरण था जो आप विभिन्न पर्यावरण परिवर्तनीय –

+2

पास कर सकते हैं, मैंने अपने आप से यह पता लगाया कि पर्यावरण चर सेट नहीं होने पर 'getenv()' 'false' लौटाता है। मैं देखता हूं कि आपका कोड चित्रण करने का प्रयास करता है। हालांकि, आपके कोड के साथ कई समस्याएं हैं। सबसे पहले, हम 'if' सशर्त में '=' असाइनमेंट ऑपरेटर का उपयोग करने से बचने का प्रयास करते हैं क्योंकि हम लगभग हमेशा '==' का मतलब रखते हैं। दूसरा, पर्यावरण चर का मान एक खाली स्ट्रिंग हो सकता है जो 'झूठी' तक रहता है, इसलिए हमें सख्त तुलना ऑपरेटर का उपयोग करने की आवश्यकता है। – wecsam

संबंधित मुद्दे