5

有时在初始化变量时,您希望向它们传递太复杂而无法在单个命令中计算的值,因此您通常要么先计算一个虚拟变量然后传递它的值,要么在别处定义一个函数,然后将它的返回值传递给我们的变量。

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

例如,而不是使用这个:

$post = get_post();
$id = $post->ID;

$array = array(
    'foo' => 'hi!',
    'bar' => $id
);

让我们使用这样的东西:

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

代码是完全随机的。

4

1 回答 1

1

在您的示例中,以下内容会很好:

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

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

$a = array('foo' => call_user_func(
    function(){
        $b = 5;
        return $b;
    })
);
var_dump($a);
于 2012-09-05T00:13:29.190 回答