तो मैंने अभी पढ़ा है Why to never use 'or die'.कैसे कृपा से मरने के लिए?
मैं अब और अधिक उलझन में हूं। मैं एक जटिल रूप को मान्य कर रहा हूं और मैं कहता हूं कि अगर बयानों के कई घोंसले के स्तर और मैं क्या नहीं कर रहा हूं और मैं उस रूप में एक वैरिएबल पास कर रहा हूं जिसे $ स्थिति कहा जाता है जो केवल 'नया' या 'संपादन' हो सकता है। फिर जब उपयोगकर्ता फॉर्म को फिर से सत्यापित करने के लिए सबमिट करता है तो फॉर्म $ स्थिति मूल्य के साथ एक छिपे हुए फ़ील्ड ($ _POST) के रूप में गुजरता है। मैं यह सुनिश्चित करना चाहता हूं कि उपयोगकर्ता गलती से इसे परिवर्तित नहीं कर सकता है, इसलिए मैं त्रुटि को पकड़ना चाहता हूं, हालांकि 'नया' या 'संपादन' पास के अलावा कुछ और होना चाहिए। (हालांकि मैं पूरी तरह से एक आदर्श दुनिया में इस चर को प्रभावित करने वाले उपयोगकर्ता की संभावना को दूर करना चाहते हैं।)
तो मैं सोचा कि मैं एक में मर जाते हैं() का प्रयोग करेंगे अगर बयान
<nested ifs>
Select ($status){
Case 'edit':
break;
Case 'new':
break;
default:
//using example from article
trigger_error("An error that should not occur has occurred", E_USER_ERROR);
break;
}
</nested ifs>
मैं डॉन ' टी वास्तव में समझ में नहीं आता कि यह मरने से कैसे साफ है()? अनिवार्य रूप से मैं एक और फ़ंक्शन कॉल करना चाहता हूं जो उपयोगकर्ता को त्रुटि को ठीक करने के लिए इस समय पर कुछ विकल्प दिखा सकता है, लेकिन मैं चाहता हूं कि कोड पूरी तरह से चलना बंद कर दे क्योंकि मैं नहीं चाहता कि अगर कोई स्टेटमेंट पार्सिंग जारी रखने के लिए आगे बढ़ता है कुछ भी और एक त्रुटि उत्पन्न करते समय इसे 'नया' या 'संपादन' के अलावा कुछ और मिलता है।
मुझे यकीन नहीं है कि मैं कितना स्पष्ट हूं, कृपया मुझे किसी भी अस्पष्ट बिंदुओं पर विस्तार से पूछने के लिए स्वतंत्र महसूस करें। (या बेहतर अभी तक, क्या एक छिपी हुई उपयोगकर्ता फ़ील्ड हैक हो सकती है? कैसे रोकें?: पी)
+1 अद्भुत शीर्षक। –