Delete
Setting
Add New Item
Menu List
Title | Content Type | Order | Action | ||||||
---|---|---|---|---|---|---|---|---|---|
{{kb_content.name}} {{kb_content.name}} | {{setValue(content_types, kb_content.content_type)}} | {{kb_content.sort_order}} | Preview Edit Edit Content | ||||||
{{kb_content.name}} | {{setValue(content_types, kb_content.content_type)}} | {{kb_content.sort_order}} | Preview Edit Edit Content | ||||||
No record |
রিকার্সিভ ফাংশন
পিএইচপি হচ্ছে একটি সার্ভার সাইড স্ক্রিপ্টিং ল্যাংগুয়েজ বা সার্ভার নিয়ন্ত্রিত স্ক্রিপ্টিং ভাষা। অর্থাৎ স্ক্রিপ্ট গুলোকে ইউজার দ্বারা কম্পিউটার থেকে নিয়ন্ত্রনের পরিবর্তে সার্ভার থেকে নিয়ন্ত্রণ করা হয়। যেহেতু এই ভাষাটিকে সরাসরি সার্ভার থেকে নিয়ন্ত্রণ করা হয় সেহেতু ওয়েবসাইটের গতি, প্রসেসিং, ইউজার ইন্টারফেস, কাজের দ্রুতগতি সব কিছুতেই বিশাল রকমের উন্নতি ঘঠবে এটাই স্বাভাবিক। পিএইচপি ব্যবহারের ফলে ডাইনামিকালি সব কাজ হয়ে যায় বলেই এটিকে ওয়েব ডেভেলপেমেন্টের জন্য সবচেয়ে বেশি ব্যবহার করা হয়। একারণে কেউ কেউ পিএইচপি'কে ওয়েব ডেভেলপেমেন্ট ল্যাংগুয়েজ বলে থাকে।
কোন ফাংশন যখন নিজে নিজেকে কল করে তখন তাকে রিকার্সিভ ফাংশন বলা হয়ে থাকে। নিচে ফ্যাক্টোরিয়াল এর উদাহরন দেওয়া হলো । এখা$n
এর ভ্যালু কমিয়ে কমিয়ে ফাংশনটি রিকার্সিভলি কল করা হয় । যখন এর ভ্যালু শূন্য হয় তখনই সে থেমে যায় । যে শর্তের উপর নির্ভর করে ফাংশনটি নিজেকে আবার কল করে বা থেমে যায় এটাকে বেইজ কন্ডিশন বা বেইজ কেইস বলা হয় । রিকার্সিভ ফাংশনে বেইজ কেইস সেট করে দেওয়া জরুরী নাহলে এই রিকার্শন থিওরেটিক্যালি থামবে না । প্র্যাক্টিকালি পিএইচপি একটি নির্দিষ্ট লেভেল এর রিকার্শন এর পর ইরর থ্রো করবে ।
যদি রিকার্সিভ ফাংশন থেকে ডাটা রিটার্ন করতে হয় তবে মূল ফাংশনের ভেতরে নিজেকে আবার কল করার সময় ফাংশনের সretu
লাগিয়ে কল করতে হবে।
Example:
<?php
function fact($n) {
if ($n === 0) { // our base case
return 1;
}
else {
return $n * fact($n-1); // <--calling itself.
}
}
var_dump(fact(10));
?>
এখানে ফাংশনটি নিজেকে কল করে অপেক্ষা করতে থাকে সেটির রিটার্ন ভ্যালুর জন্য । সেই ফাংশনটি আবার নিজেকে কল করে অপেক্ষা করতে তাকে । এভাবে একটা নেস্টেড অবস্থা তৈরি হয় । এবং সাধারনত সব শেষে কল করা ফাংশন (যেটি বেইজ কেইস ম্যাচ করে) সেটি আগে ভ্যালু রিটার্ন করে এবং কন্ট্রোল তার আগের কলারকে ফিরিয়ে দেয় । এভাবেই রিকার্শন কাজ করে