PHP पाठ – पाठ 7 – PHP फ़ंक्शन्स और फंक्शनल प्रोग्रामिंग।
मुझे लगता है कि अब हम उस बिंदु पर पहुँच गए हैं जहाँ... अब वास्तव में प्रोग्रामिंग शुरू करने का समय आ गया है। इस पाठ के बाद आप आत्मविश्वास से कह सकेंगे कि आपने PHP में प्रोग्राम लिखा है। अक्सर हमें ऐसा कोड लिखना पड़ता है जिसे कई पेजों या फाइलों में दोहराना होता है। ऐसे मामलों में कोड को बार-बार लिखने से बचाने के लिए PHP में फ़ंक्शन्स का उपयोग किया जाता है।
PHP में फ़ंक्शन क्या है?
फ़ंक्शन कोड का एक स्वतंत्र भाग होता है जो कोई गणना करता है या परिणाम लौटाता है। हम पहले से कुछ बिल्ट-इन (पूर्वनिर्धारित) फ़ंक्शन्स देख चुके हैं:
time()
— यूनिक्स युग (Unix Epoch) से अब तक के सेकंड लौटाता है।print()
औरecho()
— HTML आउटपुट प्रदर्शित करने के लिए।floor()
— दशमलव संख्या का केवल पूर्णांक भाग लौटाता है।
आपने देखा होगा कि सभी फ़ंक्शन्स के नाम के बाद दो कोष्ठक ()
लगते हैं।
फ़ंक्शन का सामान्य स्वरूप होता है: function_name()
.
नामकरण के नियम वही हैं जो वेरिएबल्स के लिए होते हैं,
बस अंतर इतना है कि फ़ंक्शन में डॉलर ($
) चिह्न नहीं होता।
फ़ंक्शन की संरचना
<?php function plus_one($x){ // फ़ंक्शन परिभाषा $x = $x + 1; // फ़ंक्शन का शरीर (body) return $x; // लौटाया गया मान } $y = 1; $y = plus_one($y); // फ़ंक्शन कॉल print $y; ?>
यह फ़ंक्शन एक मान में 1 जोड़ता है। आइए अब देखें कि फ़ंक्शन के हिस्से क्या हैं:
1. फ़ंक्शन का नाम
फ़ंक्शन का नाम वेरिएबल की तरह ही नियमों का पालन करता है:
- नाम किसी अक्षर या अंडरस्कोर (
_
) से शुरू होना चाहिए। - नाम में केवल अक्षर, अंक और अंडरस्कोर हो सकते हैं।
- नाम में स्पेस नहीं होना चाहिए।
अगर नाम में एक से अधिक शब्द हों, तो उन्हें अंडरस्कोर (
my_function()
) या कैमेलकेस (myFunction()
) में लिखा जा सकता है।
PHP में नया फ़ंक्शन बनाने के लिए function कीवर्ड का उपयोग किया जाता है।
2. फ़ंक्शन का शरीर (body)
यह वह हिस्सा है जिसमें वास्तविक कोड होता है।
हम इसे कर्ली ब्रैकेट्स {}
के अंदर लिखते हैं:
function plus_one($x){ $x = $x + 1; return $x; }
3. रिटर्न वैल्यू (return value)
return वह शब्द है जो यह निर्धारित करता है कि फ़ंक्शन कौन-सा परिणाम लौटाएगा।
यह परिणाम फ़ंक्शन के निष्पादन के बाद बाहर भेजा जाता है।
उदाहरण में $x
ही वह मान है जिसे फ़ंक्शन लौटाता है।
4. फ़ंक्शन के पैरामीटर्स
पैरामीटर्स वे मान हैं जो हम फ़ंक्शन को कॉल करते समय देते हैं। हम उन्हें फ़ंक्शन नाम के बाद गोल कोष्ठकों में लिखते हैं:
<?php function myFunction($x1, $x2, $x3){ } $y = myFunction($z, 34, 'Привет, Мир!'); ?>
यदि फ़ंक्शन तीन पैरामीटर्स स्वीकार करता है, और हम केवल दो पास करते हैं — तो PHP एक त्रुटि (error) दिखाएगा:
<?php function myFunction($x1, $x2, $x3){ } $y = myFunction(34, 'Привет, Мир!'); // ❌ त्रुटि — पैरामीटर्स मेल नहीं खाते ?>
ध्यान दें — फ़ंक्शन के अंदर पैरामीटर लोकल (स्थानीय) वेरिएबल्स होते हैं। उनके नाम बाहर के वेरिएबल्स से अलग हो सकते हैं।
उदाहरण: गणितीय फ़ंक्शन
मान लें हमारे पास एक गणितीय फ़ंक्शन है: y = -2x + 4
।
आइए विभिन्न x
मानों के लिए y
का मान निकालें:
<?php function myFunction($x){ $y = -2 * $x + 4; return $y; } $z1 = myFunction(1); $z2 = myFunction(2); $z3 = myFunction(3); print $z1 . '<br />' . $z2 . '<br />' . $z3; ?>
परिणाम होगा: -2, 0, 2. अब आपको स्पष्ट होना चाहिए कि फ़ंक्शन कैसे काम करते हैं।
PHP में फ़ंक्शनल प्रोग्रामिंग
अब हम “फंक्शनल प्रोग्रामिंग” की बात करें। नाम से ही स्पष्ट है — यह प्रोग्रामिंग का वह तरीका है जिसमें पूरा कोड फ़ंक्शन्स में विभाजित होता है। एक PHP फ़ाइल में दर्जनों फ़ंक्शन्स हो सकते हैं। आप सोच सकते हैं — इतने सारे फ़ंक्शन्स को कैसे प्रबंधित करें? चलिए इसे उदाहरण से समझते हैं:
<?php function incr($x){ $x++; return $x; } function decr($y){ $y--; return $y; } $z = 0; $z = incr($z); $z = incr($z); $z = incr($z); $z = incr($z); $z = decr($z); print $z; ?>
हमने 4 बार 1 जोड़ा और 1 बार घटाया — परिणाम 3 आया। अब वही फ़ंक्शन्स को नीचे स्थानांतरित करते हैं:
<?php $z = 0; $z = incr($z); $z = incr($z); $z = incr($z); $z = incr($z); $z = decr($z); print $z; function incr($x){ $x++; return $x; } function decr($y){ $y--; return $y; } ?>
परिणाम फिर भी 3 ही रहेगा। क्योंकि PHP किसी भी फ़ंक्शन को पूरे स्क्रिप्ट में कहीं से भी ढूंढ सकता है, भले ही वह कॉल से पहले या बाद में लिखा गया हो।
फ़ंक्शन्स को अलग फाइलों में संग्रहीत करना
अगर आपके पास 50, 100 या 1000 फ़ंक्शन्स हों — तो उन्हें अलग-अलग फाइलों में रखना बेहतर है। मान लीजिए हम दो फाइलें बनाते हैं:
decr.php:
<?php function decr($y){ $y--; return $y; } ?>
incr.php:
<?php function incr($x){ $x++; return $x; } ?>
अब index.php
में इन फाइलों को include करके उपयोग कर सकते हैं:
<?php include 'incr.php'; include 'decr.php'; $z = 0; $z = incr($z); $z = incr($z); $z = incr($z); $z = incr($z); $z = decr($z); print $z; ?>
इस तरह हमने कोड को व्यवस्थित किया और index.php
को साफ़ रखा।
परिणाम वही है — 3।
यह PHP में फ़ंक्शनल प्रोग्रामिंग की केवल शुरुआत है। आगे के पाठों में हम इसे और गहराई से सीखेंगे।