Dennis Dennis - 2 months ago 9
PHP Question

How to rewrite an example without the use of create_function?

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
?

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

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