php使用匿名函数动态计算变量


php computing a variable on the fly using anonymous functions

有时在初始化变量时,您希望传递给它们的值过于复杂,无法在一个命令中计算,因此您通常在之前计算一个伪变量,然后传递其值,或者在其他地方定义一个函数,然后将其返回值传递给我们的变量。

我的问题(愿望)是,是否可以使用匿名函数动态计算变量?

例如,不用这个:

$post = get_post();
$id = $post->ID;
$array = array(
    'foo' => 'hi!',
    'bar' => $id
);

让我们使用这样的东西:

$array = array(
    'foo' => 'hi!',
    'bar' => (function(){
        $post = get_post();
        return $post->ID;
    })
);

代码完全是随机的。

在您的示例中,以下操作很好:

$array = array('foo'=>'hi!','bar'=>(get_post()->ID));

然而,考虑到您的问题更加开放,并且不是特定于您的代码片段,您可能会发现这个stackoverflow的答案是可以接受的。

$a = array('foo' => call_user_func(
    function(){
        $b = 5;
        return $b;
    })
);
var_dump($a);