जवाबों:
कोई अंतर नहीं है - वे समान हैं।
PHP मैनुअल के लिए exit
:
नोट: यह भाषा निर्माण के बराबर है
die()
।
PHP मैनुअल के लिए die
:
यह भाषा निर्माण के बराबर है
exit()
।
die
त्रुटि संबंधित स्टॉप और exit
अन्य सभी परिदृश्यों के लिए आरक्षित रखता हूं । यह सिर्फ कोड को पढ़ते समय बेहतर प्रवाह लगता है।
die
लिखने की तुलना में बहुत तेज है exit
... मैं उपयोग करना शुरू कर रहा हूं exit
क्योंकि यह गैर-पीएचपी-प्रोग्रामर के लिए अधिक पठनीय है, लेकिन die
जब आप अंदर होते हैं तो टाइप करने के लिए बस तेज होते हैं जल्दी। इसके अलावा, जिस तरह से मैं टाइप करता हूं, मुझे लिखने के लिए अपने हाथों की स्थिति को बदलने की ज़रूरत नहीं है die
।
PHP में die()
और exit()
उनके बीच का अंतर उनकी उत्पत्ति है ।
exit()
से है exit()
में सी ।die()
से है die
में पर्ल ।die()
और exit()
कर रहे हैं बराबर कार्य करता है।
PHP मैनुअल के लिए die
:
यह भाषा निर्माण के बराबर है
exit()
।
PHP मैनुअल के लिए exit
:
नोट: यह भाषा निर्माण के बराबर है
die()
।
समारोह उपनाम की सूची के लिए PHP मैनुअल :
die()
और exit()
कर रहे हैं अन्य भाषाओं में अलग लेकिन PHP में वे समान हैं।
से फिर भी एक और पीएचपी शेख़ी :
... एक सी और पर्ल कोडर के रूप में, मैं जवाब देने के लिए तैयार था, "क्यों, बाहर निकलें () सिर्फ एक संख्यात्मक बाहर निकलने की स्थिति के साथ कार्यक्रम को बंद कर देता है, जबकि मर () त्रुटि संदेश को stderr पर प्रिंट करता है और EXIT_FITURE स्थिति के साथ बाहर निकलता है। " लेकिन तब मुझे याद आया कि हम PHP के गन्दा-वाक्य-विन्यास में हैं।
PHP में, निकास () और डाई () समान हैं।
डिजाइनरों ने स्पष्ट रूप से सोचा था कि "हम्म, चलो सी से बाहर निकलें () और पर्ल लोग शायद इसे पसंद करेंगे अगर हम मर जाते हैं () जैसा कि पर्ल से भी है। उफ़! अब हमारे पास दो निकास कार्य हैं! चलो इसे बनाते हैं ताकि वे दोनों मिल सकें। एक स्ट्रिंग या पूर्णांक को एक तर्क के रूप में ले सकते हैं और उन्हें समान बना सकते हैं! "
अंतिम परिणाम यह है कि यह वास्तव में किसी भी "आसान" चीजों को नहीं बनाता था, बस और अधिक भ्रमित। C और पर्ल कोडर्स केवल एक पूर्णांक निकास मान टॉस करने के लिए () और एक त्रुटि संदेश को टॉस करने और एक विफलता के साथ बाहर निकलने के लिए निकास () का उपयोग करना जारी रखेंगे। Newbies और PHP-as-a-first-language वाले लोग शायद आश्चर्यचकित होंगे "उम, दो निकास कार्य, जो मुझे उपयोग करना चाहिए?" मैनुअल यह नहीं समझाता है कि बाहर क्यों है () और मरो ()।
सामान्य तौर पर, PHP में इस तरह के बहुत से अतिरेक होते हैं - यह उन लोगों के अनुकूल होने की कोशिश करता है जो विभिन्न भाषा पृष्ठभूमि से आते हैं, लेकिन ऐसा करते समय, यह भ्रामक अतिरेक पैदा करता है।
exit()
कनेक्शन बंद नहीं die()
करता है, जबकि प्रासंगिक लगता है।
जैसा कि पहले कहा गया है, ये दोनों कमांड एक ही पार्सर टोकन का उत्पादन करते हैं।
परंतु
एक छोटा सा अंतर है, और यह कि पार्कर को टोकन वापस करने में कितना समय लगता है।
मैंने PHP पार्सर का अध्ययन नहीं किया है, लेकिन यदि यह "डी" से शुरू होने वाले कार्यों की एक लंबी सूची है, और "ई" से शुरू होने वाली छोटी सूची है, तो एक समय जुर्माना होना चाहिए जो फ़ंक्शन नाम के साथ शुरू हो रहा है " इ"। और पूरे फ़ंक्शन नाम की जाँच कैसे की जाती है, इसके कारण अन्य अंतर हो सकते हैं।
मुझे संदेह है कि यह औसत दर्जे का होगा जब तक कि आपके पास "पूर्ण" वातावरण नहीं है जो कि PHP को पार्स करने के लिए समर्पित है, और विभिन्न मापदंडों के साथ बहुत सारे अनुरोध हैं। लेकिन एक अंतर होना चाहिए, आखिरकार, PHP एक व्याख्या की गई भाषा है।
मरने पर PHP मैनुअल :
मरना - बाहर निकलने के बराबर
तुम भी die;
उसी तरह कर सकते हैं जैसे कि exit;
- बिना या बिना परेंस के।
die()
ओवर चुनने का एकमात्र फायदा exit()
, एक अतिरिक्त पत्र टाइप करने पर आपके द्वारा छोड़ा जाने वाला समय हो सकता है ;-)
php -a
) die;
, die();
, exit;
और exit();
जबकि, कोई प्रभाव नहीं exit
(अर्धविराम के बिना) इंटरैक्टिव मोड बाहर निकालता है।
जैसा कि अन्य सभी सही उत्तर कहते हैं, die
और exit
समान / उपनाम हैं।
हालांकि मेरा एक निजी सम्मेलन है कि जब मैं किसी स्क्रिप्ट के निष्पादन को समाप्त करना चाहता हूं जब वह अपेक्षित और वांछित होता है, तो मैं उपयोग करता हूं exit;
। और जब मुझे कुछ समस्याओं के कारण निष्पादन को समाप्त करने की आवश्यकता होती है (डीबी से कनेक्ट नहीं किया जा सकता है, फाइल आदि को नहीं लिख सकता है), मैं die("Something went wrong.");
स्क्रिप्ट को "मार" करने के लिए उपयोग करता हूं ।
जब मैं बाहर निकलने का उपयोग करता हूं:
header( "Location: http://www.example.com/" ); /* Redirect browser */
/* Make sure that code below does not get executed when we redirect. */
exit; // I would like to end now.
जब मैं डाई का उपयोग करता हूं:
$data = file_get_contents( "file.txt" );
if( $data === false ) {
die( "Failure." ); // I don't want to end, but I can't continue. Die, script! Die!
}
do_something_important( $data );
इस तरह, जब मैं exit
अपने कोड में कुछ बिंदु पर देखता हूं, मुझे पता है कि इस बिंदु पर मैं बाहर निकलना चाहता हूं क्योंकि तर्क यहां समाप्त होता है। जब मैं देखता हूं die
, मुझे पता है कि मैं निष्पादन जारी रखना चाहता हूं, लेकिन पिछले निष्पादन में त्रुटि के कारण मैं नहीं कर सकता या नहीं करना चाहिए।
बेशक यह केवल तभी काम करता है जब किसी प्रोजेक्ट पर अकेले काम कर रहा हो। जब अधिक लोग होंगे तो कोई भी उन्हें उपयोग करने से नहीं रोकेगा die
या exit
जहां यह मेरे सम्मेलनों के लायक नहीं है ...
यहाँ कुछ ऐसा है जो काफी दिलचस्प है। हालांकि exit()
और die()
समतुल्य हैं, कनेक्शन die()
बंद कर देता है। कनेक्शन exit()
बंद नहीं करता है ।
die()
:
<?php
header('HTTP/1.1 304 Not Modified');
die();
?>
exit()
:
<?php
header('HTTP/1.1 304 Not Modified');
exit();
?>
परिणाम:
exit()
:
HTTP/1.1 304 Not Modified
Connection: Keep-Alive
Keep-Alive: timeout=5, max=100
die()
:
HTTP/1.1 304 Not Modified
Connection: close
बस अपनी परियोजना के लिए इसे ध्यान में रखने की जरूरत है।
exit
और die
दोनों घनिष्ठ संबंध उसी तरह काम करते हैं, वे।
कार्यात्मक-वार वे समान हैं लेकिन मैं उन्हें कोड को पठनीय बनाने के लिए निम्नलिखित परिदृश्यों में उपयोग करता हूं:
एक त्रुटि होने पर डाई () का उपयोग करें और निष्पादन को रोकना होगा।
जैसे
die( 'Oops! Something went wrong' );
त्रुटि नहीं होने पर निकास () का उपयोग करें और निष्पादन को रोकना होगा।
जैसे
exit( 'Request has been processed successfully!' );
यह पृष्ठ कहता die
है कि एक सहयोगी है exit
, इसलिए वे समान हैं। लेकिन यह भी बताते हैं कि:
ऐसे कार्य हैं जो एक एपीआई सफाई या किसी अन्य कारण से नाम बदल गए हैं और पुराने नाम केवल पिछड़े संगतता के लिए उपनाम के रूप में रखे गए हैं। इस तरह के उपनामों का उपयोग करने के लिए आमतौर पर एक बुरा विचार है, क्योंकि वे अप्रचलन या नाम बदलने के लिए बाध्य हो सकते हैं, जिससे अप्रमाणित स्क्रिप्ट हो जाएगी।
तो, मुझे पागल कहो, लेकिन die
भविष्य में कोई आईएनजी नहीं हो सकता है ।
is_int()
और is_integer()
उदाहरण के लिए समान रूप से अच्छे हैं। php-src
GitHub पर प्रतिबद्ध इतिहास को देखते हुए , die()
निर्माण कम से कम 1999 से PHP में रहा है जब इसे SVN रिपॉजिटरी में बदल दिया गया था, और शायद जब तक भाषा मौजूद है। यह कल्पना करना बेतुका लगता है कि यह कभी भी खत्म हो जाएगा।
exit
भविष्य में कोई हो सकता है । या die
भविष्य में कोई नहीं हो सकता है "
Https://3v4l.org से यह आउटपुट दर्शाता है कि मरना और बाहर निकलना कार्यात्मक रूप से समान है।
वे अनिवार्य रूप से समान हैं, हालांकि यह लेख अन्यथा सुझाव देता है।
कार्यात्मक रूप से, वे समान हैं। इसलिए यह चुनना कि किसका उपयोग करना पूरी तरह से व्यक्तिगत प्राथमिकता है। शब्दार्थ अंग्रेजी में, वे अलग हैं। मरना नकारात्मक लगता है। जब मेरे पास एक फ़ंक्शन होता है जो क्लाइंट को JSON डेटा देता है और प्रोग्राम को समाप्त करता है, तो यह भयानक हो सकता है यदि मैं इस फ़ंक्शन को jsonDie () कहता हूं, और इसे jsonExit () कहना अधिक उपयुक्त है। इस कारण से, मैं हमेशा मरने के बजाय बाहर निकलने का उपयोग करता हूं।
जब मैं यहाँ इस प्रश्न को देखता हूँ तो मुझे क्या पता है
इसने कहा कि "PHP में, हैडर आउटपुट में एक अलग अंतर है। नीचे दिए गए उदाहरणों में मैंने एक अलग हेडर का उपयोग करने के लिए चुना है, लेकिन बाहर निकलने (और मरने) () के बीच अंतर दिखाने के लिए (जो कि कोई फर्क नहीं पड़ता"), और परीक्षण किया गया (व्यक्तिगत रूप से)
W3schools क्विज़ में: द डाई () और एग्ज़िट () फ़ंक्शंस सटीक एक ही काम करते हैं? मेरा जवाब झूठा है। वह गलत उत्तर है। सही उत्तर सही है।
मैंने अपनी स्क्रिप्ट में कम से कम कुछ देखा है कि बाहर निकलना () वर्तमान में निष्पादित स्क्रिप्ट को रोक देगा और किसी भी कॉलिंग स्क्रिप्ट पर नियंत्रण वापस कर देगा, जबकि मर अपने पटरियों में php को रोक देगा। मैं कहूंगा कि यह काफी बड़ा अंतर है?
निकास () फ़ंक्शन और डाई () फ़ंक्शन का परिणाम समान है। लेकिन जैसा कि उर्फ मैनुअल पेज ( http://php.net/manual/en/aliases.php ) में बताया गया है , यह कहता है कि डाई () फ़ंक्शन कॉल एक्ज़िट फ़ंक्शन है। मुझे लगता है कि यह नीचे की तरह कठिन कोडित है:
function die($msg){
exit($msg);
}
यह छोटी, मध्यम और बड़ी परियोजनाओं के लिए एक प्रदर्शन का मुद्दा नहीं है, लेकिन अगर परियोजना में अरबों की संख्या अरबों गुणा है, तो यह बहुत महत्वपूर्ण प्रदर्शन अनुकूलन स्थिति है।
लेकिन बहुत से लोग यह नहीं सोचते हैं कि यह एक समस्या है, क्योंकि यदि आपके पास बहुत सारी प्रक्रियाएँ हैं, तो आपको किसी समस्या के बारे में अधिक सोचना चाहिए यदि कोई फ़ंक्शन मास्टर या अन्य है।
लेकिन, सटीक उत्तर यह है कि; अलाव की तुलना में allways मास्टर फ़ंक्शन अधिक तेज़ है।
आखिरकार; अलियास मैनुअल पेज कहता है कि, आप अब डाई का उपयोग नहीं कर सकते हैं। यह केवल एक उपनाम है, और यह पदावनत है।
इस तरह के उपनामों का उपयोग करने के लिए आमतौर पर एक बुरा विचार है, क्योंकि वे अप्रचलन या नाम बदलने के लिए बाध्य हो सकते हैं, जिससे अप्रमाणित स्क्रिप्ट हो जाएगी। यह सूची उन लोगों की मदद करने के लिए प्रदान की गई है जो अपनी पुरानी लिपियों को नए वाक्यविन्यास में अपग्रेड करना चाहते हैं।
die()
एक अलग कार्य नहीं है। यह सिर्फ एक और नाम है exit()
। इस उत्तर में उपनाम और उनके प्रदर्शन के बारे में गलत कथन हैं।
वे उसी के बारे में ध्वनि करते हैं, हालांकि, बाहर निकलने () से आप अपने PHP स्क्रिप्ट के निकास कोड को सेट कर सकते हैं।
आमतौर पर आपको वास्तव में इसकी आवश्यकता नहीं होती है, लेकिन कंसोल PHP स्क्रिप्ट लिखते समय, आप उदाहरण के लिए बैश से जांचना चाह सकते हैं कि क्या स्क्रिप्ट ने सही तरीके से सब कुछ पूरा किया।
तब आप बाहर निकलें () का उपयोग कर सकते हैं और बाद में उसे पकड़ सकते हैं। मरो () हालांकि वह समर्थन नहीं करता है।
मरो () कोड के साथ हमेशा मौजूद रहता है। 0. इसलिए अनिवार्य रूप से एक डाई () कमांड निम्नलिखित करता है:
<?php
echo "I am going to die";
exit(0);
?>
जो निम्नानुसार है:
<?php
die("I am going to die");
?>
die
और exit
समान हैं (वे समान पार्सर टोकन का उत्पादन करते T_EXIT
हैं) ( और उसी कोड द्वारा निष्पादित किए जाते हैं)। यदि पैरामीटर एक पूर्णांक है, तो वह उस कोड को शेल में लौटा देगा। यदि यह नहीं है, तो यह इसे आउटपुट करेगा और 0. वापस कर देगा die
और exit
सचमुच एक-दूसरे के लिए उपनाम हैं।
so exit() is exit and die() is also exit :)