PHP में अंतर्निहित कार्यों में कॉलबैक

PHP में कई अंतर्निहित कार्य हैं, जो पैरामीटर के रूप में कॉलबैक स्वीकार करते हैं। उनके साथ काम करने का सामान्य सिद्धांत हम array_map फ़ंक्शन के उदाहरण से सीखेंगे। यह फ़ंक्शन पहले पैरामीटर के रूप में एक कॉलबैक स्वीकार करता है, और दूसरे के रूप में - एक सरणी। फ़ंक्शन कॉलबैक को लागू करता है सरणी के प्रत्येक तत्व पर और परिवर्तित सरणी लौटाता है।

आइए विकल्पों पर नज़र डालें इस फ़ंक्शन का उपयोग करने का हमारे द्वारा पहले प्राप्त ज्ञान को ध्यान में रखते हुए।

विकल्प 1

सरणी के प्रत्येक तत्व से वर्गमूल निकालें अंतर्निहित फ़ंक्शन का उपयोग करके sqrt. इसके लिए, कॉलबैक के रूप में पैरामीटर में इस फ़ंक्शन के नाम वाली स्ट्रिंग पास करें:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  $res = array_map('sqrt', $arr);
  var_dump($res);
?>

विकल्प 2

सरणी के प्रत्येक तत्व का वर्ग करें हमारे द्वारा बनाए गए सामान्य फ़ंक्शन का उपयोग करके। इसके लिए, कॉलबैक के रूप में पैरामीटर में इस फ़ंक्शन के नाम वाली स्ट्रिंग पास करें:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  function func($num) {
    return $num ** 2;
  }

  $res = array_map('func', $arr);
  var_dump($res);
?>

विकल्प 3

हमारे फ़ंक्शन को अनाम फ़ंक्शन में बदलें, जो एक चर में संग्रहीत है:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  $func = function ($num) {
    return $num ** 2;
  };

  $res = array_map($func, $arr);
  var_dump($res);
?>

विकल्प 4

अनाम फ़ंक्शन को पैरामीटर के रूप में पास करें:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  $res = array_map(function ($num) {
    return $num ** 2;
  }, $arr);
  
  var_dump($res);
?>

विकल्प 5

एरो फ़ंक्शन का उपयोग करें:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  $res = array_map(fn ($num) => $num ** 2, $arr);
  var_dump($res);
?>

विकल्प 6

अब घात, जिसमें संख्या को बढ़ाया जाना है, कॉलबैक के बाहरी चर द्वारा निर्धारित किया जाता है। इस चर का उपयोग करें, use के माध्यम से इस तक पहुंच प्राप्त करके:

php<?php
  $arr = [1, 2, 3, 4, 5];
  $pow = 3;
  
  $res = array_map(function ($num) use ($pow) {
    return $num ** $pow;
  }, $arr);
  
  var_dump($res);
?>

विकल्प 7

पिछले कोड को एरो फ़ंक्शन के माध्यम से फिर से लिखें। अब चर $pow स्वचालित रूप से उपलब्ध होगा:

php<?php
  $arr = [1, 2, 3, 4, 5];
  $pow = 3;
  
  $res = array_map(fn ($num) => $num ** $pow, $arr);
  var_dump($res);
?>

व्यावहारिक कार्य

Задание 1

स्ट्रिंग्स के साथ एक सरणी दी गई है। प्रत्येक तत्व का टेक्स्ट अपरकेस में परिवर्तित करें।

Задание 2

स्ट्रिंग्स के साथ एक सरणी दी गई है। प्रत्येक तत्व का टेक्स्ट उलट दें ताकि वर्ण विपरीत क्रम में जाएं।