php - 为什么会有函数create_function()?在 PHP 中

标签 php function

如果我可以创建 function something() { ... },为什么会有函数 create_function()create_function(string $args, string $code); 的真正含义是什么?

例如,我是否应该echo 一个特定的值,手写:

function sayHi($name){
    echo 'Hi,' . $name;
}
//using it like:
sayHi('Jacques Marais');


但随后使用 create_function() 方法:

$sayHi = create_function('$name', 'echo \'Hi,\' . $name;');
//using it like:
$sayHi('Jacques Marais');

最佳答案

因为您可以以多种方式使用它..甚至在数组中!

$farr = array(
    create_function('$x,$y', 'return "some trig: ".(sin($x) + $x*cos($y));'),
    create_function('$x,$y', 'return "a hypotenuse: ".sqrt($x*$x + $y*$y);'),
    create_function('$a,$b', $f1),
    create_function('$a,$b', $f2),
    create_function('$a,$b', $f3)
);

你只看一个例子,但这个函数的使用更复杂,你可以用许多不同的方式使用它,这比使用 function() 更容易。

如 PHP.net 上的示例#3

<?php
    $av = array("the ", "a ", "that ", "this ");
    array_walk($av, create_function('&$v,$k', '$v = $v . "mango";'));
    print_r($av);
?>

上面的例子会输出:

Array
(
    [0] => the mango
    [1] => a mango
    [2] => that mango
    [3] => this mango
)

关于php - 为什么会有函数create_function()?在 PHP 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20394721/

相关文章:

php - 提交成功提示

php - 在 ajax 数组中使用 jQuery .serialize() 将 PHP $_POST 作为变量传递?

php - HTML5 + UTF-8 : do i need to encode the GBP symbol (£)?

php - Ajax 未将值传递给 php 文件

ios - 如何在下面给出的 Hidekeyboard 函数中包含多个 UITextField?

c - 我如何制作一个可以从 Lua 调用的 C 函数?

image - 使用平均滤波器部分模糊图像

php - MySQL5.6 vs Percona 5.7 隐式转换问题

function - 为什么我不能直接将地址运算符 (&) 应用于函数返回值

c - 从文件中精确打印和扫描 (C)