当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP create_function()用法及代码示例


create_function()是PHP中的内置函数,用于在PHP中创建匿名(lambda-style)函数。

用法:

string create_function ( $args, $code )

参数:该函数接受以下两个参数:


  • $args:它是一个字符串类型的函数参数。
  • $code:它是字符串类型的函数代码。

注意:通常,这些参数将作为单引号分隔的字符串传递。使用单引号引起来的字符串的原因是为了防止变量名被解析,否则,将需要双引号来转义变量名,例如\ $avar。

返回值:此函数以字符串形式返回唯一的函数名称,否则,在错误时返回FALSE。

以下示例程序旨在说明PHP中的create_function()函数:

程序1:使用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\n"; 
echo $newfunc(2, M_E) . "\n"; 
?>
输出:
New anonymous function: lambda_1
ln(2) + ln(2.718281828459) = 1.6931471805599

程序2:使用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) . "\n"; 
    } 
} 
  
// 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" .  
        "\nParameter is a = 2 and b = 3\n"; 
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 "\nSecond array of anonymous functions" . 
      "\nParameter is a = GeeksForGeeks and" . 
      "b = GeeksForGeeks\n"; 
  
Program("GeeksForGeeks", "GeeksForGeeks", $sarr); 
?>
输出:
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



相关用法


注:本文由纯净天空筛选整理自Mithun Kumar大神的英文原创作品 PHP | create_function() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。