Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP रिटर्निंग मान (Returning Values) - रिटर्न स्टेटमेंट, सरणी, रेफरेंस, टाइप हिंट्स


परिचय

एक फ़ंक्शन में इसके बॉडी में अंतिम स्टेटमेंट के रूप में return हो सकता है हालांकि यह अनिवार्य नहीं है। जब किसी फ़ंक्शन को कॉल किया जाता है, तो इसके बॉडी ब्लॉक में स्टेटमेंट्स निष्पादित करने के बाद प्रोग्राम का कंट्रोल कॉलिंग वातावरण में वापस आ जाता है - चाहे फ़ंक्शन ब्लॉक में अंतिम स्टेटमेंट return हो या न हो। रिटर्न स्टेटमेंट की अनुपस्थिति में, कॉलर को NULL मान लौटाया जाता है। यदि रिटर्न स्टेटमेंट में एक एक्सप्रेशन क्लॉज होता है, तो एक्सप्रेशन का मान भी कंट्रोल के अलावा लौटाया जाता है। फ़ंक्शन केवल एक मान लौटा सकता है जो स्केलर प्रकार, सरणी, या ऑब्जेक्ट हो सकता है। लौटाया गया मान बाद में प्रोसेसिंग के लिए किसी वेरिएबल को असाइन किया जा सकता है।

रिटर्न के साथ फ़ंक्शन

उदाहरण 1: दो पूर्णांकों का योग लौटाना

<?php 
function add($var1, $var2) { 
    $var3 = $var1 + $var2; 
    return $var3; 
} 
$x = 10; 
$y = 20; 
$z = add($x, $y); 
echo "addition=$z"; 
?>

आउटपुट

addition=30

सरणी लौटाना

फ़ंक्शन केवल एक मान लौटा सकता है। हालांकि, कई मानों की सरणी लौटाई जा सकती है। निम्न उदाहरण दो नंबरों को एक फ़ंक्शन में पास करता है जो जोड़, घटाव, गुणा और भाग की सरणी लौटाता है।

उदाहरण 2: एकाधिक परिणामों की सरणी लौटाना

<?php 
function result($var1, $var2) { 
    $r1 = $var1 + $var2; 
    $r2 = $var1 - $var2; 
    $r3 = $var1 * $var2; 
    $r4 = $var1 / $var2; 
    return array("add" => $r1, "sub" => $r2, "multiply" => $r3, "division" => $r4); 
} 
$x = 10; 
$y = 20; 
$arr = result($x, $y); 
foreach ($arr as $k => $v) { 
    echo $k . "->" . $v . "\n"; 
} 
?>

आउटपुट

add->30 
sub->-10 
multiply->200 
division->0.5

रेफरेंस द्वारा रिटर्न (Return by Reference)

जैसे आर्गुमेंट्स को रेफरेंस द्वारा पास किया जा सकता है, एक फ़ंक्शन रेफरेंस द्वारा भी रिटर्न कर सकता है। उस उद्देश्य के लिए, फ़ंक्शन के नाम को $ सिंबल से उपसर्गित किया जाना चाहिए। इसके अलावा, फ़ंक्शन कॉल में & सिंबल भी दिया जाना चाहिए।

निम्न उदाहरण में, myfunction() में एक स्टैटिक सरणी है। इसके तत्वों में से एक को रेफरेंस द्वारा लौटाया जाता है और एक वेरिएबल में स्वीकार किया जाता है। वेरिएबल का मान तब संशोधित किया जाता है और वही फ़ंक्शन फिर से कॉल किया जाता है। फ़ंक्शन में सरणी को अब उसका मान बदला हुआ दिखाना चाहिए।

उदाहरण 3: रेफरेंस द्वारा रिटर्न

<?php 
function &myfunction() { 
    static $arr = [1, 2, 3, 4, 5]; 
    echo "array elements: "; 
    foreach ($arr as $i) { 
        echo "$i "; 
    } 
    echo "\n"; 
    return $arr[2]; 
} 
$var = &myfunction(); 
echo "returned by reference : $var\n"; 
$var = 100; 
$var = &myfunction(); 
?>

आउटपुट

array elements: 1 2 3 4 5 
returned by reference : 3 
array elements: 1 2 100 4 5

उदाहरण 4: swap() फ़ंक्शन में रेफरेंस द्वारा रिटर्न

$x और $y वेरिएबल्स के मान swap() फ़ंक्शन में अदला-बदली किए जाते हैं। चूंकि वेरिएबल्स रेफरेंस द्वारा पास किए जाते हैं, फ़ंक्शन के बाहर भी वेरिएबल्स संशोधित मान दिखाते हैं।

रिटर्न टाइप हिंट्स (Return Type Declarations)

PHP 7 से, आप लौटाए गए वेरिएबल/ऑब्जेक्ट के लिए टाइप हिंट्स निर्दिष्ट कर सकते हैं, जैसे आर्गुमेंट्स के लिए प्रकार घोषित करना संभव है। रिटर्न टाइप के लिए भी सभी स्केलर प्रकार, क्लास और सरणी उपयोग की जा सकती हैं।

सिंटैक्स

// रिटर्न मान के लिए टाइप हिंट्स के साथ फ़ंक्शन परिभाषित करें
function myfunction($arg1, $arg2): type { 
    .. 
    .. 
    return $var; 
}

रिटर्न वेरिएबल के लिए फ़ंक्शन घोषणा में टाइप हिंट्स प्रदान करने के लिए सभी मानक PHP डेटा प्रकार जिनमें स्केलर प्रकार, सरणी, क्लास/इंटरफ़ेस, इटरेबल और ऑब्जेक्ट शामिल हैं, वैध प्रकार हैं।

उदाहरण 5: फ्लोट रिटर्न टाइप हिंट

<?php 
function add($x, $y): float { 
    return $x + $y; 
} 
$var = add(5, 8); 
var_dump($var); 
?>

आउटपुट

float(13)

उदाहरण 6: strict_types के साथ इंट रिटर्न टाइप

strict_types=1 के साथ declare स्टेटमेंट का उपयोग डेटा प्रकारों के बलपूर्वक रूपांतरण को रोकेगा।

<?php 
declare (strict_types = 1); 
function add($x, $y): int { 
    return $x + $y; 
} 
$var = add(5.5, 8.8); 
var_dump($var); 
?>

आउटपुट

PHP Fatal error: Uncaught TypeError: Return value of add() must be of the type integer, float returned
  1. - PHP में फ़ंक्शन से दो मान लौटाना

    दो वेरिएबल्स को स्पष्ट रूप से लौटाया नहीं जा सकता, उन्हें एक सूची/एरे डेटा संरचना में रखा जा सकता है और लौटाया जा सकता है। उदाहरण function factors($n) { // एक खाली सरणी घोषृत की जाती है $fact = array(); // इसके माध्यम से लूप करें for ($i = 1; $i < $n; $i++) { // जांचें

  1. - PHP में array_count_values() फ़ंक्शन

    PHP में array_count_values() फ़ंक्शन सरणी में प्रत्येक मान की घटनाओं (occurrences) की गिनती करता है। एक सहयोगी सरणी लौटाता है जहाँ कुंजियाँ मूल सरणी के मान होते हैं और मान उनकी गिनती। सिंटैक्स (Syntax) array_count_values(array $arr): array पैरामीटर्स (Parameters) $arr − वह सरणी जिसके मानों की गि

  1. - पायथन में एकाधिक मान वापस करना

    पायथन फ़ंक्शन एकाधिक मान वापस कर सकते हैं। इन मानों को सीधे वेरिएबल्स में संग्रहीत किया जा सकता है। एक फ़ंक्शन एक वेरिएबल वापस करने तक सीमित नहीं है, यह शून्य, एक, दो या अधिक मान वापस कर सकता है।यह पायथन की डिफ़ॉल्ट संपत्ति है कि वह एकाधिक मान/वेरिएबल वापस कर सकता है जो C++ या Java जैसी कई अन्य प्रो