Functions in PHP: किसी भी Programming Language में कुछ ऐसे काम होते हैं, जिन्हें बार-बार किया जाता है। उदाहरण के लिए किसी एक Web Site पर Registration करते समय जो Codes Execute होते हैं, वही Codes उस समय Execute होते हैं, जब किसी दूसरे Web Site के लिए Registration Form Create किया जाता है। इसी प्रकार से किसी एक Web Site के लिए बनाया गया Login Form Exactly उसी तरह से काम करता है, जिस तरह से किसी दूसरी Web Site के लिए बनाया गया Login Form काम करता है।
यानी हर Web Site या Application में कुछ काम ऐसे होते हैं, जो लगभग सभी Web Site या Application में समान रूप से काम करते हैं। इस प्रकार के Repetitive कामों को पूरा करने के लिए बार-बार एक जैसे Program Codes लिखने की जरूरत पडती है।
इसलिए इस प्रकार के Repetitive कामों को पूरा करने के लिए लिखे गए Codes को एक Block के रूप में Specify कर लिया जाता है और इस Code Block को एक नाम दे दिया जाता है। इसी Named Code Block को Function कहते हैं।
जब हमें किसी ऐसे Named Code Block यानी Function के Codes Execute करना होता है, तो हमें हमारे PHP Program में जहां पर भी Function के Codes को Execute करना होता है, वहां पर Function का नाम Specify कर देते हैं।
यदि Function किसी तरह का Parameter Accept करता है, तो उस Function के नाम के साथ Function के कोष्टठक में वे Parameters भी Arguments के रूप में Specify करते हैं, जिन्हें Function में Input Values के रूप में Pass करना है।
किसी PHP Program में किसी Function के Codes को Execute करने के लिए Function के नाम व Parameters को Specify करने की प्रक्रिया को Function Call करना कहा जाता है।
जब हम किसी Code Block को एक Function के रूप में Specify कर लेते हैं, तब उस Function के Codes को हम हमारे Program में जहां चाहें वहां बार-बार Reuse कर सकते हैं। यानी हमें Function के अन्दर लिखे गए Statements को बार-बार लिखने की जरूरत नहीं रहती।
Function का दूसरा फायदा ये है कि जब हम किसी Code Block को एक Function के रूप में Define कर लेते हैं, तब वह Code Block Memory में केवल एक ही बार Space Reserve करता है, जिससे हमारे Program की Speed व Performance अच्छी हो जाती है क्योंकि हमारे Program की Size छोटी रहती है।
जबकि यदि हम Functions का प्रयोग नहीं करते हैं, तो हमें किसी एक ही प्रकार के काम को बार-बार करने के लिए समान Code Block को बार-बार अलग-अलग लिखना पडता है, जिसकी वजह से Program की Size बढ जाती है। परिणामस्वरूप Program की Performance Down हो जाती है।
साथ ही Program Codes के Repetition के कारण Program को Modify व Upgrade करना भी काफी जटिल हो जाता है, क्योंकि हमें उन सभी स्थानों पर लिखे गए समान Codes को Change करना पडता है, जो कि समान प्रकार का काम कर रहे हैं। जबकि Functions को Use करने पर हमें केवल एक Function में Change करना होता है, और उस Change का Effect पूरे Program पर हो जाता है।
Function का तीसरा फायदा ये है कि हम हमारे Program को Functions का प्रयोग करके कई छोटे-छोटे Sub-Programs में Divide कर लेते हैं। परिणामस्वरूप यदि किसी Program में किसी Specific Code में कोई Error हो, तो हमें केवल उसी Function को Debug करने की जरूरत पडती है, जिसमें वह Code लिखा गया है, न कि पूरे PHP Program को।
फलस्वरूप हमारे लिए किसी भी PHP Program को Create, Manage, Debug व Extend करना आसान हो जाता है व हमारी Development की Speed बढ जाती है जो कि किसी भी Professional Development की सबसे महत्वपूर्ण जरूरत होती है।
Functions का एक और फायदा ये है कि हम विभिन्न प्रकार की जरूरतों को पूरा करने वाले Functions को एक ही बार Create करके एक अलग File में Store करके रख सकते हैं। यानी हम हमारी जरूरत के अनुसार विभिन्न प्रकार के Functions की एक User Defined Function Library भी Create कर सकते हैं।
जब भी हमें उस Library File में लिखे गए किसी भी Function की जरूरत होती है, हम उस File को अपने Program में Include कर लेते हैं और बिना किसी Code को फिर से लिखे हुए हम हमारे पहले से बने Functions को Reuse कर सकते हैं। ऐसा करने के दो फायदे होते हैं:
- पहला हमारे समय की बचत होती है, क्योंकि हमें समान प्रकार के Codes को दुबारा लिखने की जरूरत नहीं रहती। और
- दूसरा ये कि हमें हमारे Codes को केवल एक ही बार Create व Debug करना होता है, जिससे Development की Speed बढ जाती है तथा Program में नए Codes लिखने की वजह से आने वाली Bugs का सामना नहीं करना पडता, क्योंकि हमें हमारे Function को केवल एक ही बार Debug करना होता है।
Functions के और भी बहुत सारे फायदे हैं, लेकिन हम फायदों की Detail में नहीं जा रहे हैं। बस इतना समझ लेना पर्याप्त है कि Functions हमारे Development की Speed को बढाते हैं, हमारे Program ज्यादा Secure व Performance में अच्छे होते हैं तथा हम हमारे Program को आसानी से Manage, Maintain, Upgrade व Extend कर सकते हैं।
Built-In Functions and User Defined Functions
मूल रूप से Function दो प्रकार के होते हैं:
- Built-In Functions
- User Defined Functions
Built-In Functions वे Functions होते हैं, जिन्हें हम बिना Define किए हुए Directly Use कर सकते हैं। उदाहरण के लिए Array से संबंधित विभिन्न Functions को हमने पिछले Section में देखा है। ये सभी Functions Built-In या Library Functions के उदाहरण हैं, क्योंकि इन Functions को बिना Define किए हुए हम Directly Use कर लेते हैं।
PHP में लगभग 1000 से ज्यादा Built-In या Library Functions हैं, जिन्हें PHP के Core में ही Specify कर दिया गया है। ये Functions PHP Development में बहुत ज्यादा उपयोग में लिए जाते हैं, इसलिए इन Functions को PHP के Core में ही Library या Built-In Functions के रूप में Define कर दिया गया है। परिणामस्वरूप हमें इन Functions को Use करने के लिए किसी तरह के Extra Codes को लिखने की जरूरत नहीं पडती है।
लेकिन किसी भी Programming Language की तरह PHP हमें ये सुविधा देता है कि हम हमारी जरूरत के आधार पर हमारे स्वयं User Defined Functions भी Create कर सकते हैं। जब हम हमारी किसी Specific जरूरत के आधार पर किसी Function को Create करते हैं, तो इस प्रकार के Functions को User Defined Functions कहा जाता है।
Function Nesting
जब हम किसी Function को Call करते हैं और उस Function में Argument के रूप में किसी दूसरे Function का नाम Specify कर देते हैं, तो पहले अन्दर वाला Function Execute होता है और अपना Output Generate करता है अथवा कोई मान Return करता है, उसके बाद उस Function को Call करने वाला Outer Function Call होता है। Argument के रूप में Pass किए गए Function को Nested Function कहा जाता है। जैसेः
<?php $values = array(12, 45, 78, 98, 45); print_r(array_sum($values)); ?>
उपरोक्त PHP Code में print_r() Function के अन्दर array_sum() Function को एक Argument के रूप में Pass करते हुए Call किया गया है, इसलिए इस Code में array_sum() Function, print_r() Function के अन्दर Nested है।
किसी Function के अन्दर Argument के रूप में किसी अन्य Function को Call करने की प्रक्रिया को Function की Nesting करना कहते हैं।
Calling Function and Called Function
किसी भी PHP Program में हमेंशा किसी भी Function को दो रूपों में Identify किया जाता है। जो Function किसी दूसरे Function को Call करता है, उसे Calling Function कहते हैं, जबकि जो Function किसी दूसरे Function द्वारा Call होता है, उसे Called Function कहा जाता है। जैसेः
<?php $values = array(12, 45, 78, 98, 45); print_r(array_sum($values)); ?>
उपरोक्त Code एक Nested Function का भी उदाहरण है, लेकिन हम इसे Calling Function व Called Function के रूप में भी समझ सकते हैं।
उपरोक्त Code में print_r() वह Function है, जो array_sum() नाम के Function को Call कर रहा है, इसलिए print_r() Function एक Calling Function है, जबकि array_sum() एक Called Function है।
Function Creation or Function Definition
जब हम हमारे Program में किसी Code Block को एक Function की तरह Define करना चाहते हैं, तब हमें निम्न Syntax को उपयोग में लेना होता हैः
function [&] function_name ( Parameters ) { Statement List; }
इस Syntax में function शब्द एक Keyword है, जो PHP को इस बात की Instruction देता है कि हम एक Named Code Block यानी एक Function Create कर रहे हैं।
function_name हमारे द्वारा Create किए जाने वाले Named Code Block यानी Function का नाम है, जिसका प्रयोग हम हमारे PHP Program में वहां करते हैं, जहां हमें हमारे इस Function के Block में Specify किए गए विभिन्न Statements List को Execute करना होता है। जबकि
Parameters के रूप में हमें वे Arguments Specify करने होते हैं, जिन्हें हम हमारे Function को Call करते समय उसमें Input Values के रूप में Pass करेंगे, जिन पर हमारा Function किसी Operation को Perform करके किसी Result को Generate करेगा।
Function का नाम Specify करते समय हमें उन सभी Rules को Follow करना होता है, जिन्हें हम किसी Identifier का नाम Specify करते समय Follow करते हैं। यानी हम किसी Function के नाम में Alphanumerical Characters व Underscore का प्रयोग कर सकते हैं लेकिन नाम के शुरूआत किसी Digit से नहीं हो सकता। साथ ही नाम में किसी Special Symbol या PHP Keyword का प्रयोग नहीं किया जा सकता।
कोई भी PHP Function केवल एक ही Value Return कर सकता है और ये Value किसी भी तरह का हो सकता है। यानी ये Value Scalar Data Type अथवा Array या Object हो सकता है। साथ ही हम किसी PHP Function से किसी Data Type का Reference भी Return कर सकते हैं।
किसी PHP Function में PHP Parser को जैसे ही return Statement मिलता है, PHP Parser वहीं से Function से फिर से Calling Function में Return हो जाता है। यानी return Statement के बाद के Statements का Execution नहीं करता।
यदि हमारा PHP Function किसी Data Type के Reference को Return करता है, तो हमें Function के नाम से पहले & (Ampersand) का प्रयोग करना पडता है, जैसाकि उपरोक्त Syntax में दर्च्चाया गया है।
जब हम किसी Function से Reference Return करते हैं, तब वह Function किसी Data Type की Copy Return नहीं करता, बल्कि किसी पहले से Exist Data Type के Identifier का Reference Return करता है। इसलिए ये जरूरी होता है कि हम Function से जिस Data Identifier का Reference Return कर रहे हैं, वह Global Variable हो यानी Function से बाहर Define किया गया Variable हो।
Function Call करना व Function Define करना, दोनों में मूल रूप से एक ही अन्तर होता है। जब हम किसी Function को Call करते हैं, तब Function के नाम के बाद कोष्टठक में Parameters की List Specify करने के बाद अन्त में Semicolon का प्रयोग किया जाता है। जैसेः
print_r(array_sum($values));
उपरोक्त Code में print_r() Function Call किया जा रहा है, इसलिए इस Function में array_sum() Function को Argument के रूप में Pass करने के बाद कोष्टठक को बन्द किया गया है और अन्त में Semicolon का प्रयोग किया गया है।
जबकि किसी Function को Define करते समय Function के कोष्टठक के बाद Semicolon के स्थान पर Opening Curly Brace का प्रयोग किया जाता है और Function द्वारा Execute होने वाले सभी Statements को इस Opening व Closing Curly Braces के बीच लिखा जाता है। जैसेः
function demo_function() { print_r(array_sum($values)); }
उपरोक्त Code में demo_function() के कोष्टठक के बाद Opening Curly Braces का प्रयोग किया गया है, जिसका मतलब ये है कि हम demo_function() नाम के Function को Define कर रहे हैं, न कि Call कर रहे हैं।
किसी भी Function के Opening व Closing Curly Braces के बीच Specify किए गए सभी Statements को Block Statement या Function की Body कहा जाता है। यदि Function में केवल एक ही Statement हो, तो हम Curly Braces के Pair को छोड सकते हैं। लेकिन किसी भी तरह की Error या अवांछित Results से बचने के लिए हमें हमेंशा Function की Body को Curly Braces के Pair के रूप में ही Specify करना चाहिए।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
PHP in Hindi | Page: 647 | Format: PDF