উত্তর:
কোনও পার্থক্য নেই - সেগুলি একই।
পিএইচপি ম্যানুয়াল এর জন্য exit
:
দ্রষ্টব্য: এই ভাষা নির্মাণের সমতুল্য
die()
।
পিএইচপি ম্যানুয়াল এর জন্য die
:
এই ভাষা নির্মাণ সমতুল্য
exit()
।
die
ত্রুটি সম্পর্কিত স্টপ এবং exit
অন্যান্য সমস্ত পরিস্থিতিতে সংরক্ষণ করি। কোডটি পড়ার সময় মনে হয় এটি আরও ভাল প্রবাহিত হয়েছে।
die
লেখার চেয়ে আরও দ্রুত exit
... আমি ব্যবহার শুরু করছি exit
কারণ এটি পিএইচপি-প্রোগ্রামারদের কাছে বেশি পঠনযোগ্য তবে die
আপনি যখন থাকবেন তখন টাইপ করতে কেবল দ্রুত দ্রুত. এছাড়াও, আমি যেভাবে টাইপ করি, আমাকে লেখার জন্য আমার হাতের অবস্থান পরিবর্তন করতে হবে না die
।
পিএইচপি die()
এবং এর exit()
মধ্যে পার্থক্য তাদের উত্স ।
exit()
সি থেকে exit()
হয় ।die()
থেকে die
মধ্যে পার্ল ।die()
এবং exit()
হয় সমতুল্য ফাংশন।
পিএইচপি ম্যানুয়াল এর জন্য die
:
এই ভাষা নির্মাণ সমতুল্য
exit()
।
পিএইচপি ম্যানুয়াল এর জন্য exit
:
দ্রষ্টব্য: এই ভাষা নির্মাণের সমতুল্য
die()
।
ফাংশন এলিয়াসগুলির তালিকার জন্য পিএইচপি ম্যানুয়াল :
die()
এবং exit()
হয় অন্য ভাষায় বিভিন্ন কিন্তু পিএইচপি তারা অভিন্ন।
থেকে তবুও অন্য পিএইচপি গলাবাজি :
... একটি সি এবং পার্ল কোডার হিসাবে, আমি উত্তর দেওয়ার জন্য প্রস্তুত ছিলাম, "কেন, প্রস্থান () কেবলমাত্র একটি সংখ্যাগত প্রস্থান স্থিতি সহ প্রোগ্রামটি বন্ধ করে দেয়, যখন মরা () স্টাডারকে ত্রুটি বার্তা প্রিন্ট করে এবং এক্সআইএফএইফএল স্থিতি সহ প্রস্থান করে। " তবে তখন আমি মনে করেছি আমরা পিএইচপি-র অশ্লীল-সিনট্যাক্স-জমিতে আছি।
পিএইচপি-তে, প্রস্থান () এবং মরা () অভিন্ন।
ডিজাইনাররা স্পষ্টতই ভেবেছিলেন "হুম, আসুন সি থেকে প্রস্থান কর () এবং পার্ল লোকেরা সম্ভবত এটি পছন্দ করবে যদি আমরা পার্লের মতো মর () গ্রহণ করি তবে ওফ! আমাদের এখন দুটি প্রস্থান ফাংশন আছে! আসুন এটি তৈরি করুন যাতে তারা উভয়ই হয় একটি যুক্তি হিসাবে একটি স্ট্রিং বা পূর্ণসংখ্যার নিতে এবং তাদের অভিন্ন করতে পারে! "
শেষ ফলাফলটি হ'ল এটি আসলে বিষয়গুলিকে কোনও "সহজ" করে নি, কেবল আরও বিভ্রান্তিকর। সি এবং পার্ল কোডার কেবলমাত্র একটি পূর্ণসংখ্যার প্রস্থান মূল্য টস করতে প্রস্থান () ব্যবহার করতে এবং মরন () একটি ত্রুটি বার্তা টস করতে এবং ব্যর্থতার সাথে প্রস্থান করতে চালিয়ে যাবে। নতুন ভাষার এবং পিএইচপি-তে প্রথম ভাষার লোকেরা সম্ভবত "উম্ম, দুটি প্রস্থান ফাংশন, আমি কোনটি ব্যবহার করব?" ম্যানুয়ালটি ব্যাখ্যা করে না যে কেন প্রস্থান () এবং মারা () (
সাধারণভাবে, পিএইচপি-তে এরকম প্রচুর অদ্ভুত অপ্রয়োজনীয়তা রয়েছে - এটি বিভিন্ন ভাষার ব্যাকগ্রাউন্ড থেকে আসা লোকদের সাথে বন্ধুত্বপূর্ণ হওয়ার চেষ্টা করে, তবে এটি করার সময় এটি বিভ্রান্তিকর অপ্রয়োজনীয় সৃষ্টি করে।
exit()
এটি করার সময় সংযোগটি বন্ধ করে দেয় না die()
, প্রাসঙ্গিক বলে মনে হয়।
যেমন আগেই বলা হয়েছে, এই দুটি কমান্ড একই পার্সার টোকেন উত্পাদন করে।
কিন্তু
একটি ছোট পার্থক্য রয়েছে এবং টোকনটি ফেরত নিতে পার্সারটি কত সময় নেয়।
আমি পিএইচপি পার্সার অধ্যয়ন করি নি, তবে এটি যদি "ডি" দিয়ে শুরু হওয়া ফাংশনগুলির দীর্ঘ তালিকা এবং "ই" দিয়ে শুরু হয় এমন একটি ছোট তালিকা, তবে ফাংশনটির নামের সাথে শুরু হওয়া একটি সময় পেনাল্টি থাকতে হবে " ই "। পুরো ফাংশনটির নাম কীভাবে পরীক্ষা করা হয় তার কারণে এবং অন্যান্য পার্থক্য থাকতে পারে।
আমি সন্দেহ করি যে পিএইচপি পার্সিংয়ের জন্য আপনার উত্সর্গীকৃত "নিখুঁত" পরিবেশ না থাকলে এবং বিভিন্ন পরামিতিগুলির সাথে প্রচুর অনুরোধ রয়েছে it তবে একটি পার্থক্য থাকতে হবে, সর্বোপরি, পিএইচপি হ'ল ব্যাখ্যা করা ভাষা।
উপর পিএইচপি ম্যানুয়াল ডাই :
die - প্রস্থান সমান
এমনকি আপনি কি করতে পারেন 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
উভয় নিবিড় সম্পর্ক একই ভাবে কাজ করে, তারা।
কার্যকারিতা অনুসারে এগুলি অভিন্ন তবে আমি কোডটি পঠনযোগ্য করে তুলতে নিম্নলিখিত পরিস্থিতিতে তাদের ব্যবহার করি:
কোনও ত্রুটি হলে ডাই () ব্যবহার করুন এবং কার্যকর করতে হবে have
যেমন
die( 'Oops! Something went wrong' );
কোনও ত্রুটি না থাকলে প্রস্থান () ব্যবহার করুন এবং সম্পাদন বন্ধ করতে হবে।
যেমন
exit( 'Request has been processed successfully!' );
এই পৃষ্ঠাটি বলছে এর die
মিত্র exit
, তাই তারা অভিন্ন। তবে এটিও ব্যাখ্যা করে:
কিছু ফাংশন রয়েছে যা এপিআই ক্লিনআপ বা অন্য কোনও কারণে নাম বদলেছে এবং পুরানো নামগুলি কেবল পশ্চাদপদ সামঞ্জস্যের জন্য উপকরণ হিসাবে রাখা হয়। সাধারণত এই জাতীয় উপকরণগুলি ব্যবহার করা একটি খারাপ ধারণা, কারণ এগুলি অপ্রচলিত বা নামকরণে আবদ্ধ হতে পারে, যা অপ্রয়োজনীয় স্ক্রিপ্টের দিকে নিয়ে যায়।
সুতরাং, আমাকে ভৌগল বলুন, তবে die
ভবিষ্যতে কোনও আইং থাকতে পারে না ।
is_int()
এবং is_integer()
উদাহরণের জন্য এটিও সমান। php-src
গিটহাবের প্রতিশ্রুতিবদ্ধ ইতিহাসের দিকে তাকালে , নির্মাণটি die()
কমপক্ষে ১৯৯৯ সাল থেকে পিএইচপি-তে রয়েছে যখন এটি একটি এসভিএন সংগ্রহস্থলে রূপান্তরিত হয়েছিল, এবং সম্ভবত ভাষা দীর্ঘকাল ধরে বিদ্যমান রয়েছে। এটি কখনও অবমূল্যায়ন করা হবে তা কল্পনা করা অবাস্তব বলে মনে হয়।
exit
ভবিষ্যতে কোনও কিছু হতে পারে না Or বা ভবিষ্যতে কোনও কিছুই থাকতে পারে না die
"
Https://3v4l.org থেকে প্রাপ্ত এই আউটপুটটি দেখায় যে ডাই এবং প্রস্থানটি কার্যত অভিন্ন।
তারা মূলত একই, যদিও এই নিবন্ধটি অন্যথায় প্রস্তাব দেয়।
কার্যত, তারা অভিন্ন। সুতরাং কোনটি ব্যবহার করবেন তা চয়ন করা সম্পূর্ণ ব্যক্তিগত পছন্দ। শব্দার্থগতভাবে ইংরাজীতে এগুলি আলাদা। ডাই নেতিবাচক শোনায়। আমার যখন কোনও ফাংশন থাকে যা ক্লায়েন্টকে JSON ডেটা ফেরত দেয় এবং প্রোগ্রামটি শেষ করে, আমি যদি এই ফাংশনটিকে jsonDie () বলি তবে এটি জঘন্য হতে পারে এবং এটি jsonExit () বলা ভাল appropriate যে কারণে, আমি সবসময় মরার পরিবর্তে প্রস্থান ব্যবহার করি।
আমি এই প্রশ্নটি এখানে তাকান যখন আমি জানি
এটি সেখানে বলেছিল যে "পিএইচপি-তে, শিরোনামের আউটপুটে একটি আলাদা পার্থক্য রয়েছে is নীচের উদাহরণগুলিতে আমি আলাদা শিরোনাম ব্যবহার করতে বেছে নিয়েছি তবে প্রস্থান () এবং ডাই () এর মধ্যে পার্থক্য দেখানোর জন্য" এটি গুরুত্বপূর্ণ নয় ", এবং পরীক্ষিত (ব্যক্তিগতভাবে)
ডাব্লু 3 স্কুলগুলিতে কুইজে: ডাই () এবং প্রস্থান () ফাংশনগুলি হুবহু একই কাজ করে? আমার উত্তর মিথ্যা। এটি ভুল উত্তর। সঠিক উত্তরটি সত্য।
কমপক্ষে আমি আমার স্ক্রিপ্টগুলিতে লক্ষ্য করেছি কিছু হ'ল প্রস্থান () বর্তমানে সম্পাদনকারী স্ক্রিপ্টটি থামিয়ে দেবে এবং নিয়ন্ত্রণটি কোনও কলিং স্ক্রিপ্টে ফিরে যাবে, যখন ডাই পিএইচপি তার ট্র্যাকগুলিতে থামিয়ে দেবে। আমি বলব যে বেশ বড় পার্থক্য?
প্রস্থান () ফাংশন এবং ডাই () ফাংশনের ফলাফল সর্বদাই একই। তবে উপন্যাসের ম্যানুয়াল পৃষ্ঠাতে ( http://php.net/manual/en/aliases.php ) ব্যাখ্যা করে বলা হয়েছে যে ডাই () ফাংশনটি প্রস্থান ফাংশনকে কল করে। আমি মনে করি এটি নীচের মত শক্ত কোডড:
function die($msg){
exit($msg);
}
এটি ক্ষুদ্র, মাঝারি এবং বড় প্রকল্পগুলির জন্য পারফরম্যান্সের সমস্যা নয় তবে যদি প্রকল্পটির বিলিয়ন বিলিয়ন বহুগুণ কোটি কোটি গুণ থাকে, তবে এটি খুব গুরুত্বপূর্ণ পারফরম্যান্স অপটিমাইজেশন রাষ্ট্র হয়।
তবে বেশিরভাগ লোকই মনে করেন না যে এটি একটি সমস্যা, কারণ আপনার যদি খুব বেশি প্রক্রিয়া থাকে তবে আপনাকে অবশ্যই কোনও ফাংশন মাস্টার বা ওরফে থাকলে তার চেয়ে বেশি সমস্যা ভাবতে হবে।
তবে, সঠিক উত্তরটি হ'ল; allways মাস্টার ফাংশনটি উপনামের চেয়ে আরও দ্রুত।
অবশেষে; এলিয়াসের ম্যানুয়াল পৃষ্ঠায় বলা হয়েছে যে, আপনি আর ডাই ব্যবহার করতে পারবেন না। এটি কেবল একটি উপনাম, এবং এটি অবচয় করা হয়েছে।
সাধারণত এই জাতীয় উপকরণগুলি ব্যবহার করা একটি খারাপ ধারণা, কারণ এগুলি অপ্রচলিত বা নামকরণে আবদ্ধ হতে পারে, যা অপ্রয়োজনীয় স্ক্রিপ্টের দিকে নিয়ে যায়। যারা তাদের পুরানো স্ক্রিপ্টগুলি আরও নতুন সিনট্যাক্সে আপগ্রেড করতে চান তাদের সহায়তা করার জন্য এই তালিকাটি সরবরাহ করা হয়েছে।
die()
পৃথক ফাংশন নয়। এটি এর অন্য একটি নাম exit()
। এই জবাবটিতে উপস্বত্ত্ব এবং তাদের কর্মক্ষমতা সম্পর্কে ভুল বক্তব্য রয়েছে।
এগুলি সম্পর্কে একই শব্দ হয়, তবে, প্রস্থান () এছাড়াও আপনাকে আপনার পিএইচপি স্ক্রিপ্টের প্রস্থান কোড সেট করতে দেয়।
সাধারণত আপনার সত্যিই এটির প্রয়োজন হয় না, তবে কনসোল পিএইচপি স্ক্রিপ্টগুলি লেখার সময়, আপনি উদাহরণস্বরূপ বাশ দিয়ে পরীক্ষা করতে চাইতে পারেন যদি স্ক্রিপ্টটি সঠিকভাবে সমস্ত কিছু সম্পন্ন করে।
তারপরে আপনি প্রস্থান () ব্যবহার করতে পারেন এবং এটি পরে ধরতে পারেন। ডাই () তবে এটি সমর্থন করে না।
ডাই () সর্বদা কোড ০ সহ উপস্থিত থাকে তাই মৃত () কমান্ডটি নিম্নলিখিতটি করে:
<?php
echo "I am going to die";
exit(0);
?>
যা একই:
<?php
die("I am going to die");
?>
die
এবং exit
অভিন্ন (তারা একই পার্সার টোকেন উত্পাদন করে T_EXIT
) ( এবং একই কোড দ্বারা কার্যকর করা হয়)। যদি প্যারামিটারটি একটি পূর্ণসংখ্যা হয় তবে এটি কোডটি শেলটিতে ফিরে আসবে। যদি তা না হয়, এটা 0 ফিরে সুতরাং এটি আউটপুট হবে এবং die
এবং exit
আক্ষরিক প্রতিটি-অপরের জন্য alias লেখা হয়।
so exit() is exit and die() is also exit :)