How to rewrite an example without the use of creat

2020-04-10 01:20发布

问题:

When looking at PHP's create_function it says:

If you are using PHP 5.3.0 or newer a native anonymous function should be used instead.

I want to recreate same functionality of create_function but using an anonymous function. I do not see how, or if I am approaching it correctly.

In essence, how do I change the following so that I no longer use create_function but still can enter free-form formula that I want to be evaluated with my own parameters?

$newfunc = create_function(
    '$a,$b',
    'return "ln($a) + ln($b) = " . log($a * $b);'
);
echo $newfunc(2, M_E) . "\n";

Example taken from PHP's create_function page.

Note:

It looks like with the above example I can pass in an arbitrary string, and have it be compiled for me. Can I somehow do this without the use of create_function?

回答1:

$newfunc = function($a, $b) {
    return "ln($a) + ln($b) = " . log($a * $b);
}

echo $newfunc(2, M_E) . "\n";