有时在初始化变量时,您希望传递给它们的值过于复杂,无法在一个命令中计算,因此您通常在之前计算一个伪变量,然后传递其值,或者在其他地方定义一个函数,然后将其返回值传递给我们的变量。
我的问题(愿望)是,是否可以使用匿名函数动态计算变量?
例如,不用这个:
$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);