2013-08-06 7 views
12

का उपयोग कर यह मेरी कोशिश PHP में/कैच ब्लॉक है:पीएचपी नोटिस: अपरिभाषित सूचकांक हालांकि कोशिश पकड़

try 
{ 
    $api = new api($_GET["id"]); 
    echo $api -> processRequest(); 
} catch (Exception $e) { 
    $error = array("error" => $e->getMessage()); 
    echo json_encode($error); 
} 

जब $_GET["id"] में कोई बात नहीं है, मैं अभी भी नोटिस त्रुटि मिलती है। मैं इस त्रुटि को कैसे प्राप्त कर सकता हूं? यदि चर या सेट किया गया है नहीं

+2

उपयोग 'isset उपयोग कर सकते हैं ($ _ प्राप्त [ 'आईडी'])' या 'array_key_exists ('आईडी', $ _GET);' .. इस प्रश्न के लिए गिनने के लिए दस लाख डुप्लिकेट .. – dbf

+0

अगर (जारी ($ _ प्राप्त करें ['आईडी']) {$ api = new api ($ _ GET ['id']); } – Maximus2012

+7

एक PHP नोटिस एक अपवाद नहीं है। – sangaran

उत्तर

21

उपयोग isset समारोह की जाँच करने के:

if(isset($_GET['id'])){ 
    $api = new api($_GET["id"]); 
    echo $api -> processRequest(); 
} 
0

पता चल सके कि $_GET

try 
{ 
    if(isset($_GET["id"])) 
    { 
     $api = new api($_GET["id"]); 
     echo $api -> processRequest(); 
    } 
} catch (Exception $e) { 
    $error = array("error" => $e->getMessage()); 
    echo json_encode($error); 
} 
1

स्थापित किया गया था आईडी की अनुपस्थिति का मतलब कुछ भी नहीं तो कार्रवाई की जानी चाहिए, तो कोशिश करें, तो आपको आईडी की अनुपस्थिति के लिए परीक्षण करना चाहिए, और विफलता को सफलतापूर्वक प्रबंधित करना चाहिए।

if(!isset($_GET['id'] || empty($_GET['id']){ 
// abort early 
} 

फिर आगे बढ़ें और आप कोशिश करें/पकड़ लें।

निश्चित रूप से जब तक आप api के लिए कुछ होशियारी() जोड़ने के लिए थे ताकि एक डिफ़ॉल्ट आईडी के साथ जवाब दिया है, कि आप समारोह में घोषित होगी

function api($id = 1) {} 

इसलिए, यह "सभी निर्भर करता है", लेकिन यदि आप कर सकते हैं तो जल्दी कोशिश करें और असफल हो जाएं।

+0

उत्तेजना फेंकता है ध्यान दें कि 'खाली()' वैरिएबल सेट नहीं होने पर नोटिस नहीं चलाता है। इस प्रकार, 'जारीकर्ता() 'अनावश्यक है। –

0

आप एक तेज और चाहते हैं "गंदे" समाधान है, आप

$api = new api(@$_GET["id"]); 
+11

घर पर बच्चों के लिए, यह वास्तव में * गंदे * है और आपको इसे एक समाधान पर विचार नहीं करना चाहिए। घर पर बच्चों के लिए –

+1

@JasonMcCreary +1 .. –

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