পরিচয়
একটি ফাংশন তার শরীরে শেষ বিবৃতি হিসাবে ফিরে আসতে পারে যদিও এটি বাধ্যতামূলক নয়। যখন একটি ফাংশন কল করা হয়, তখন প্রোগ্রামের নিয়ন্ত্রণ তার বডি ব্লকে স্টেটমেন্ট এক্সিকিউট করার পর কলিং এনভায়রনমেন্টে ফিরে আসে - ফাংশন ব্লকের শেষ স্টেটমেন্ট রিটার্ন হোক বা না হোক। Retun স্টেটমেন্টের অনুপস্থিতিতে, কন্ট্রোল কলারকে NULL মান প্রদান করে। যদি রিটার্ন স্টেটমেন্টে একটি এক্সপ্রেশন ক্লজ থাকে, তাহলে এক্সপ্রেশনের মান দেওয়া হয়। ফাংশন শুধুমাত্র একটি মান প্রদান করতে পারে যা স্কেলার টাইপ, অ্যারে বা একটি বস্তু হতে পারে। প্রত্যাবর্তিত মান পরবর্তী প্রক্রিয়াকরণের জন্য কিছু ভেরিয়েবলে বরাদ্দ করা হতে পারে
রিটার্ন সহ ফাংশন
নিম্নলিখিত উদাহরণে, একটি ফাংশন যুক্তি হিসাবে পাস করা দুটি পূর্ণসংখ্যার যোগফল প্রদান করে
উদাহরণ
আউটপুট
এটি নিম্নলিখিত ফলাফল তৈরি করবে। −
সংযোজন=30
রিটার্নিং অ্যারে
ফাংশন শুধুমাত্র একটি মান ফেরত দিতে পারে। যাইহোক, একাধিক মানের অ্যারে ফেরত দেওয়া যেতে পারে। নিম্নলিখিত উদাহরণটি একটি ফাংশনে দুটি সংখ্যা পাস করে যা যোগ, বিয়োগ, গুণ এবং ভাগের অ্যারে প্রদান করে
উদাহরণ
$r1,"sub"=>$r2,"multiply"=>$r3,"division"=>$r4);}$x=10;$y=20;$arr=ফলাফল($x,$y); foreach ($arr হিসেবে $k=>$v){ echo $k। "->" $v "\n";}?>
আউটপুট
এটি নিম্নলিখিত ফলাফল তৈরি করবে। −
add->30sub->-10multiply->200division->0.5
রেফারেন্স দ্বারা ফেরত
আর্গুমেন্ট যেমন রেফারেন্স দ্বারা পাস করা যেতে পারে, তেমনি একটি ফাংশনও রেফারেন্স দ্বারা ফিরে আসতে পারে। সেই উদ্দেশ্যে, ফাংশনের নাম $ প্রতীক দ্বারা উপসর্গ করা আবশ্যক। আরও, &চিহ্ন অবশ্যই ফাংশন কলে দিতে হবে
নিম্নলিখিত উদাহরণে, myfunction() এর একটি স্ট্যাটিক অ্যারে রয়েছে। এর উপাদানগুলির একটি রেফারেন্স দ্বারা প্রত্যাবর্তন করা হয় এবং একটি পরিবর্তনশীল হিসাবে গৃহীত হয়। ভেরিয়েবলের মান তারপর পরিবর্তন করা হয় এবং একই ফাংশন আবার কল করা হয়। ফাংশনে অ্যারে এখন তার মান পরিবর্তিত দেখাতে হবে।
উদাহরণ
আউটপুট
এটি নিম্নলিখিত ফলাফল তৈরি করবে। −
অ্যারে উপাদান:1 2 3 4 5 রেফারেন্স দ্বারা ফিরে এসেছে:3 অ্যারে উপাদান:1 2 100 4 5
$x এবং $y ভেরিয়েবলের মান swap() ফাংশনে বিনিময় করা হয়। যেহেতু, ভেরিয়েবলগুলি রেফারেন্স দ্বারা পাস করা হয়, ভেরিয়েবলগুলি ফাংশনের বাইরেও পরিবর্তিত মানগুলি দেখায়
রিটার্ন টাইপ ইঙ্গিত (রিটার্ন টাইপ ঘোষণা)
পিএইচপি 7 থেকে, আপনি রিটার্ন করা ভেরিয়েবল/অবজেক্টের জন্য টাইপ ইঙ্গিত নির্দিষ্ট করতে পারেন, ঠিক যেমন আর্গুমেন্টের জন্য টাইপ ঘোষণা করা সম্ভব। রিটার্ন টাইপের জন্যও সমস্ত স্কেলার প্রকার, ক্লাস এবং অ্যারে ব্যবহার করা যেতে পারে
সিনট্যাক্স
//রিটার্ন ভ্যালু ফাংশন myfunction($arg1, $arg2) এর জন্য টাইপ ইঙ্গিত সহ একটি ফাংশন সংজ্ঞায়িত করুন:টাইপ{ .. .. $var; }
স্কেলার প্রকার, অ্যারে, ক্লাস/ইন্টারফেস, পুনরাবৃত্তিযোগ্য এবং অবজেক্ট সহ সমস্ত স্ট্যান্ডার্ড PHP ডেটা প্রকারগুলি একটি ফাংশন ঘোষণায় রিটার্ন ভেরিয়েবলের জন্য টাইপ ইঙ্গিত দেওয়ার জন্য বৈধ প্রকার।
উদাহরণ
আউটপুট
এটি নিম্নলিখিত ফলাফল তৈরি করবে। −
float(13)
strict_types=1 এর সাথে ডিক্লেয়ার স্টেটমেন্টের ব্যবহার ডেটা প্রকারের জবরদস্তি প্রতিরোধ করবে
উদাহরণ
প্রে>আউটপুট
এটি এখন নিম্নরূপ ব্যতিক্রম নিক্ষেপ করবে -
PHP মারাত্মক ত্রুটি:ধরা পড়েনি TypeError:add() এর রিটার্ন মান অবশ্যই টাইপের পূর্ণসংখ্যার হতে হবে, ফ্লোট রিটার্ন করা হয়েছে