কম্পিউটার টিউটোরিয়াল

PHP finally এবং return-এর ইন্টারঅ্যাকশন


ভূমিকা

finally ব্লকের একটি আকর্ষণীয় আচরণ থাকে যখন try ব্লক বা catch ব্লক (বা উভয়) একটি return স্টেটমেন্ট ধারণ করে। সাধারণত return স্টেটমেন্ট প্রোগ্রামের কন্ট্রোল কলিং পজিশনে ফেরত দেয়। কিন্তু, try/catch ব্লকে return থাকা একটি ফাংশনের ক্ষেত্রে, finally ব্লকের স্টেটমেন্টগুলো রিটার্ন করার আগে প্রথমে এক্সিকিউট হয়।

উদাহরণ

নিচের উদাহরণে, div() ফাংশনে একটি try-catch-finally কনস্ট্রাক্ট আছে। এক্সেপশন ছাড়া try ব্লক ডিভিশনের ফলাফল রিটার্ন করে। এক্সেপশন হলে, catch ব্লক এরর মেসেজ রিটার্ন করে। কিন্তু, যেকোনো কেসে finally ব্লকের স্টেটমেন্ট প্রথমে এক্সিকিউট হয়।

উদাহরণ

<?php
function div($x, $y){
    try {
        if ($y==0)
            throw new Exception("Division by 0");
        else
            $res=$x/$y;
            return $res;
    }
    catch (Exception $e){
        return $e->getMessage();
    }
    finally{
        echo "This block is always executed\n";
    }
}
$x=10;
$y=0;
echo div($x,$y);
?>

আউটপুট

নিচের আউটপুট দেখানো হয়:

This block is always executed
Division by 0

$y-এর মান 5 করলে নিচের আউটপুট দেখানো হয়:

This block is always executed
2

  1. জাভাস্ক্রিপ্ট এবং PHP-এর পার্থক্য

  2. PHP এবং JavaScript এর পার্থক্য

  3. HTML Block এবং Inline এলিমেন্ট

  4. জাভাতে try, catch এবং finally ব্লকের মাঝপথে স্টেটমেন্ট লিখা যায় কিনা?