PHP | create_function () Функция

Опубликовано: 18 Февраля, 2022

Create_function () - это встроенная функция в PHP, которая используется для создания анонимной (лямбда-стиля) функции в PHP.

Синтаксис:

 строка create_function ($ args, $ code)

Параметры: эта функция принимает два параметра, которые описаны ниже:

  • $ args: это аргумент функции строкового типа.
  • $ code: это код функции строкового типа.

Примечание. Обычно эти параметры передаются в виде строк, разделенных одинарными кавычками. Причина использования строк в одинарных кавычках состоит в том, чтобы защитить имена переменных от синтаксического анализа, в противном случае потребуются двойные кавычки, чтобы избежать имен переменных, например, $ avar.

Возвращаемое значение: эта функция возвращает уникальное имя функции в виде строки, в противном случае возвращает FALSE в случае ошибки.

Ниже программы иллюстрируют функцию create_function () в PHP:

Program 1: Creating an anonymous function with create_function()

<?php
//create a function from information 
// gathered at run time,
  
$newfunc = create_function("$a, $b", "return
       "ln($a) + ln($b) = " . log($a * $b);");
  
echo "New anonymous function: $newfunc ";
echo $newfunc(2, M_E) . " ";
?>
Output:
New anonymous function: lambda_1
ln(2) + ln(2.718281828459) = 1.6931471805599

Program 2: Create a general function with create_function()

<?php
// General function that can apply a set of 
// operations to a list of parameters.
  
function Program($value1, $value2, $arr)
{
    foreach ($arr as $val) {
        echo $val($value1, $value2) . " ";
    }
}
  
// create a bunch of math functions
$f1 = "if ($a >= 0) { return "b * a^2 = ".
       $b * sqrt($a);} else { return false; }";
  
$f2 = "return "min(a, b) = ".min($a, $b);";
  
$farr = array(
    create_function("$x, $y", "return 
       "a hypotenuse: ".sqrt($x * $x + $y * $y);"),
      
    create_function("$a, $b", $f1),
    create_function("$a, $b", $f2)
);
  
echo "first array of anonymous functions"
        " Parameter is a = 2 and b = 3 ";
Program(2, 3, $farr);
  
// now make a bunch of string functions
$sarr = array(
    create_function("$a, $b", "return 
     "Lower case : " . strtolower($a) ;"),
    create_function("$a, $b", "return 
    "Similar Character : " .
    similar_text($a, $b, $percent);")
);
  
echo " Second array of anonymous functions" .
      " Parameter is a = GeeksForGeeks and" .
      "b = GeeksForGeeks ";
  
Program("GeeksForGeeks", "GeeksForGeeks", $sarr);
?>
Output:
first array of anonymous functions
Parameter is a = 2 and b = 3
a hypotenuse: 3.605551275464
b * a^2 = 4.2426406871193
min(a, b) = 2

Second array of anonymous functions
Parameter is a = GeeksForGeeks andb = GeeksForGeeks
Lower case : geeksforgeeks
Similar Character : 13

Ссылки: http://php.net/manual/en/function.create-function.php