2010-03-17 18 views
10

मैं इस के बीच अंतर समझने की कोशिश कर रहा हूँ:मुझे php में isset() फ़ंक्शन की आवश्यकता क्यों है?

if (isset($_POST['Submit'])) { 
    //do something 
} 

और

if ($_POST['Submit']) { 
    //do something 
} 

यह है कि अगर $ _POST [ 'सबमिट'] चर सच है, तो यह सेट किया गया है मुझे लगता है। मुझे इस मामले में जारीकर्ता() फ़ंक्शन क्यों चाहिए?

उत्तर

15

क्योंकि

$a = array("x" => "0"); 

if ($a["x"]) 
    echo "This branch is not executed"; 

if (isset($a["x"])) 
    echo "But this will"; 

(भी http://hk.php.net/manual/en/function.isset.php और http://hk.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting देखें)

+0

वापस लौटाए, तो क्या मुझे हमेशा इस तरह के मामलों में जारीकर्ता फ़ंक्शन का उपयोग करना चाहिए? – zeckdude

+2

'$ a [" x "] तक पहुंचने का प्रयास करने से' E_Notice' भी बढ़ेगा जब '$ a' के अंदर कोई कुंजी' x' परिभाषित नहीं है। 'Isset' या' array_key_exists' के साथ जांचना इससे बच सकता है। – Gordon

+0

@ क्रिस: किसी निश्चित चर के * अस्तित्व * को जांचने के लिए हमेशा 'जारीकर्ता' का उपयोग करें। – kennytm

4

isset सही वापस आ जाएगी अगर यह मौजूद है और नहीं तो यह गलत है शून्य नहीं है।

3

आप मूल रूप से यह जांचना चाहते हैं कि मूल्य के बावजूद $ _POST [] चर सबमिट किया गया है या नहीं। यदि आप Isset() का उपयोग नहीं करते हैं, तो submit=0 जैसे कुछ सबमिशन विफल हो जाएंगे।

1

आपके दूसरे उदाहरण में, PHP या कठोर पर एक नोटिस जारी करेगा यदि वह कुंजी $_POST के लिए सेट नहीं है।

भी this question on Stack Overflow देखें।

+0

नहीं है 'E_STRICT'; 'E_NOTICE'। – janmoesen

+0

आह चीयर्स, धन्यवाद। – alex

0

कोड

 

if($_POST['Submit']) 
{ 
//some code 
} 
 

WAMP में काम नहीं करेगा (XAMPP पर काम करता है)
WAMP पर आप उपयोग करना

 

if (isset($_POST['Submit'])) { 
    //do something 
} 
 

यह कोशिश करनी होगी। :)

+1

यह डिफ़ॉल्ट त्रुटि हैंडलिंग सेटअप की तरह एक ऑपरेटिंग सिस्टम की तरह लगता है। – alex

0

यदि उपयोगकर्ता एक मूल्य [] तो $ _POST वापसी शून्य है कि हम isset के वर्णन में कहते हैं कि प्रवेश नहीं करते: "

isset सही वापस आ जाएगी अगर यह मौजूद है और नहीं तो यह गलत है शून्य नहीं है। , लेकिन यहां इसेटेट सही "

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