Default Arguments in PHP Functions

Default Arguments in PHP Functions: जब हम PHP में कोई User Defined Function Create करते हैं, तो उस Function में हम जितने Arguments Specify करते हैं, Function को Call करते समय हमें उन सभी Arguments के लिए Parameters के रूप में Value Pass करना जरूरी होता है, अन्यथा PHP Error अथवा Warning Message Generate करता है। जैसेः

<?php
	function add2number($first, $second){
		$third = $first + $second;	
		echo "Total = " . $third; 
	}
	
	$x = 10;
	
	add2number($x);
?>

इस Program में हमने add2number() नाम का जो Function बनाया है, वह दो Arguments Accept करता है, लेकिन Function को Call करते समय हमने इस Function में केवल एक ही Parameter $x Pass किया है। परिणामस्वरूप जब PHP Parser इस Script को Interpret करता है, तब निम्नानुसार Warning MessageNotice Information Return करता हैः

//Output
PHP Warning:  Missing argument 2 for add2number(), called in C:\wamp\www\phpInHindi\001.php on line 10 and defined in C:\wamp\www\phpInHindi\001.php on line 2
PHP Stack trace:
PHP   1. {main}() C:\wamp\www\phpInHindi\001.php:0
PHP   2. add2number() C:\wamp\www\phpInHindi\001.php:10

Warning: Missing argument 2 for add2number(), called in C:\wamp\www\phpInHindi\001.php on line 10 and defined in C:\wamp\www\phpInHindi\001.php on line 2

Call Stack:
    0.0006     325672   1. {main}() C:\wamp\www\phpInHindi\001.php:0
    0.0006     325832   2. add2number() C:\wamp\www\phpInHindi\001.php:10

PHP Notice:  Undefined variable: second in C:\wamp\www\phpInHindi\001.php on line 3
PHP Stack trace:
PHP   1. {main}() C:\wamp\www\phpInHindi\001.php:0
PHP   2. add2number() C:\wamp\www\phpInHindi\001.php:10

Notice: Undefined variable: second in C:\wamp\www\phpInHindi\001.php on line 3

Call Stack:
    0.0006     325672   1. {main}() C:\wamp\www\phpInHindi\001.php:0
    0.0006     325832   2. add2number() C:\wamp\www\phpInHindi\001.php:10

Total = 10

इस प्रकार की परेशानी से बचने के लिए PHP में Default Arguments की व्यवस्था की गई है। इस व्यवस्था के अनुसार हम किसी भी PHP Function में Specify किए जाने वाले Arguments के साथ Default Values Associate कर सकते हैं, जो उस समय Automatically Use हो जाती हैं, जब हम Function को Call करते समय किसी Argument के लिए Function में Parameters Pass नहीं करते।

इस प्रकार से Default Arguments का प्रयोग करते हुए हम उपरोक्त Program को निम्नानुसार Modify कर सकते हैं:

<?php
	function add2number($first, $second = 0){
		$third = $first + $second;	
		echo "Total = " . $third; 
	}
	
	$x = 10;
	$y = 20;
	
	add2number($x);
?>

इस Modified Program में हमने add2number() Function के दूसरे Argument को “$second = 0” Expression द्वारा Default Value से Set किया है। परिणामस्वरूप जब हम add2number() Function को Call करते समय दूसरे Argument को Specify नहीं करते हैं, तो PHP स्वयं ही दूसरे Argument के रूप में Specify किए गए Default मान को उपयोग में ले लेता है।

Default Arguments को Use करते समय मुख्‍य रूप से ध्यान रखने वाली एक बात ये है कि Default Arguments हमेंशा Right to Left Set करना चाहिए, क्योंकि Function में Parameters हमेंशा Left to Right Pass होते हैं।

यानी यदि किसी Function में चार Arguments Pass किए जा सकते हैं, तो हम Right Side के चौथे Argument को Default मान Set किए बिना तीसरे Argument को Default मान Set नहीं कर सकते।

यदि हम ऐसा करते हैं, तो Error Generate हो सकती है, क्योंकि जब Function को Call किया जाता है, तब उसमें Pass किए जाने वाले सभी Parameters Left to Right Direction में Called Function के Arguments में Copy होते हैं।

इसलिए पहला Parameter पहले Argument में Copy होगा, दूसरा Parameter दूसरे Argument में Copy होगा, तीसरा Parameter तीसरे Argument में Copy होगा और यदि हमने चौथे Argument के स्थान पर तीसरे Argument को ही Default मान Set किया, तो चौथे Argument के लिए Parameter Specified न होने की वजह से PHP Error ही Generate करेगा। इसे समझने के लिए हम एक और Program देखते हैं:

<?php
	function add($a, $b, $c = 0, $d){
		Echo "Total : ". ($a + $b + $c + $d);
	}
	
	add2number(10, 15, 12);
?>

उपरोक्त Code में हमने तीसरे Argument $c को Default Value Set किया है। जब हम Function को Call करते हैं, तो पहला मान 10, Variable $a में Set हो जाता है, दूसरा मान 15, Variable $b में Set हो जाता है और तीसरा मान 12, Variable $c में Set हो जाता है।

चूंकि हमने Variable $c को Default मान Set किया था, जो कि मान 12 से Overwrite हो जाता है, परिणामस्वरूप चौथे Argument के लिए कोई मान नहीं होता। फलस्वरूप PHP Error Generate करता है।

इसी Program में यदि हम निम्नानुसार चौथे Argument को Default मान Set करते, तो PHP किसी तरह का कोई Error Generate नहीं करता। क्योंकि Function को Call करते समय Specify किए गए तीनों मानों द्वारा क्रमश:  तीनों Variable $a, $b व $c Set हो जाते व चौथे Variable $d के लिए Default मान 0 Use हो जाता।

<?php
	function add($a, $b, $c, $d = 0){
		Echo "Total : ". ($a + $b + $c + $d);
	}
	
	add2number(10, 15, 12);
?>

अतः Default Arguments को हमेंशा Right to Left यानी Function के सबसे अन्तिम Argument को सबसे पहले Set करना चाहिए व Right to Left Direction में Set करते हुए Right से Left की तरफ बढना चाहिए, क्योंकि Function Call करते समय Pass किए

PHP in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

PHP in Hindi | Page: 647 | Format: PDF

BUY NOW GET DEMO REVIEWS