PHP Default Arguments
In this page:
function function_name($required, $optional = default_value) {
// body
}
function_name($a); // uses the default
function_name($a, $b); // overrides it
Default Arguments क्या हैं?
किसी parameter की definition में सीधे एक value assign करना (function greet($name = Guest)) उस argument को call site पर optional बना देता है — अगर caller एक supply नहीं करता, PHP चुपचाप एक missing argument के बारे में error raise करने के बजाय default पर fall back हो जाता है।
उदाहरण: What are Default Arguments?
<?php
// Define the function `greet` taking `$name`
function greet($name = 'Guest') {
// Print "Hello, $name!" to the output
echo "Hello, $name!";
}
// Call `greet()`
greet();
?>
Login to try C/C++/Java/PHP code in the editor
Default Arguments रखना
PHP को चाहिए कि default value वाला हर parameter बिना default value वाले हर parameter *के बाद* आए। किसी required parameter से पहले एक optional parameter रखना एक ऐसा ordering बनाता है जिसे PHP unambiguously resolve नहीं कर सकता, और यह function definition को parse करने से पूरी तरह मना कर देगा।
उदाहरण: Placing Default Arguments
<?php
// Define the function `greet` taking `$name`, `$greeting`
function greet($name, $greeting = "Hello") {
// Print "$greeting, $name!" to the output
echo "$greeting, $name!";
}
// Call `greet("Alice")`
greet("Alice");
?>
Login to try C/C++/Java/PHP code in the editor
Default Values को Override करना
function को normally call करना और बस एक value supply करना उस call के लिए उस parameter का default override कर देता है — defaults सिर्फ तभी apply होते हैं जब कोई argument genuinely omit किया जाए, कभी नहीं जब एक explicitly pass किया जाए, भले ही यह default से match करता हो।
उदाहरण: Overriding Default Values
<?php
// Define the function `greet` taking `$name`
function greet($name = 'Guest') {
// Print "Hello, $name!" to the output
echo "Hello, $name!";
}
// Call `greet("Alice")`
greet("Alice");
?>
Login to try C/C++/Java/PHP code in the editor
Defaults के साथ Type Declarations
Type declarations और default values बिना किसी conflict के साथ काम करते हैं: PHP अभी भी caller द्वारा actually supply की गई किसी value का type validate करता है, जबकि default खुद उस check से exempt है (जब आपने इसे लिखा तब यह पहले से सही होने की तरह trusted है)।
उदाहरण: Type Declarations with Defaults
<?php
// Define the function `setVolume` taking `int $level`
function setVolume(int $level = 50) {
// Print "Volume: $level" to the output
echo "Volume: $level";
}
// Call `setVolume()`
setVolume();
?>
Login to try C/C++/Java/PHP code in the editor
Null बनाम Default Argument
Explicitly null pass करना एक real argument माना जाता है, 'कुछ pass नहीं हुआ' नहीं — यह parameter की default value trigger *नहीं* करता।
अगर किसी parameter को genuinely null पर भी अपने default पर fall back होना चाहिए, यह function body के अंदर handle करना होगा, सिर्फ default-argument mechanism से नहीं।
उदाहरण: Null vs Default Argument
<?php
// Define the function `greet` taking `$name`
function greet($name = 'Guest') {
// Declare `$name`, set to `$name ?? 'Guest'`
$name = $name ?? 'Guest';
// Print "Hello, $name!" to the output
echo "Hello, $name!";
}
// Call `greet(null)`
greet(null);
?>
Login to try C/C++/Java/PHP code in the editor
- एक default parameter को एक required वाले से पहले रखना, जैसे
function f($a = 1, $b), जो PHP 8 में deprecated है। - यह उम्मीद करना कि explicitly pass किया गया
nulldefault trigger करेगा, जबकि defaults सिर्फ तभी apply होते हैं जब argument omit किया गया हो। - पुराने PHP versions में default की तरह एक non-constant expression इस्तेमाल करना, जबकि initializers में
newसिर्फ PHP 8.1 से allowed है।
Chapter Quiz — Complete all 10 topics to unlock
0/10 topics done
Complete these topics first: