Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中使用匿名函数生成数组_Php_Arrays_Anonymous Function_Anonymous - Fatal编程技术网

在PHP中使用匿名函数生成数组

在PHP中使用匿名函数生成数组,php,arrays,anonymous-function,anonymous,Php,Arrays,Anonymous Function,Anonymous,我有这个代码块 $data['cp'][$key]->prominence = $meta_data['prominence']; $data['cp'][$key]->related_link = (function() { $arr = array(); for ( $i = 1; $i < 4 ; $i++ ) { $rldata = array

我有这个代码块

        $data['cp'][$key]->prominence           = $meta_data['prominence'];
        $data['cp'][$key]->related_link = (function()
        {   $arr = array();
            for ( $i = 1; $i < 4 ; $i++ ) {
                $rldata = array();
                $rldata['title'] = $metadata['related_link_'.$i.'_title'];
                $rldata['title'] = $metadata['related_link_'.$i.'_url'];
                array_push( $arr, $rldata );
                }
            return  $arr;
        });
$data['cp'][$key]->突出度=$meta_data['突出度];
$data['cp'][$key]->related_link=(函数()
{$arr=array();
对于($i=1;$i<4;$i++){
$rldata=array();
$rldata['title']=$metadata['related_link'.$i.'u title'];
$rldata['title']=$metadata['related_link'.$i.'u url'];
阵列推送($arr,$rldata);
}
返回$arr;
});
如您所见,我希望
$data['cp'][$key]->related_link
等于匿名函数动态生成的多维数组

但是,当使用
print\r
时,它只会将键显示为等于
闭包。
如何编辑代码,使其实际返回数组,而不仅仅是等于闭包。

如何:

<?php

$x = (function () { return array (1, 2, 3); });
$y = call_user_func(function () { return array (1, 2, 3); });
print_r($x);
print_r($y);

?>
这个怎么样:

<?php

$x = (function () { return array (1, 2, 3); });
$y = call_user_func(function () { return array (1, 2, 3); });
print_r($x);
print_r($y);

?>

您应该执行这个函数,直到现在您才刚刚声明它

$data['cp'][$key]->prominence   = $meta_data['prominence'];
$data['cp'][$key]->related_link = call_user_func(function()
            {   $arr = array();
                for ( $i = 1; $i < 4 ; $i++ ) {
                    $rldata = array();
                    $rldata['title'] = $metadata['related_link_'.$i.'_title'];
                    $rldata['title'] = $metadata['related_link_'.$i.'_url'];
                    array_push( $arr, $rldata );
                    }
                return  $arr;
            });           
$data['cp'][$key]->突出度=$meta_data['突出度];
$data['cp'][$key]->related\u link=call\u user\u func(函数()
{$arr=array();
对于($i=1;$i<4;$i++){
$rldata=array();
$rldata['title']=$metadata['related_link'.$i.'u title'];
$rldata['title']=$metadata['related_link'.$i.'u url'];
阵列推送($arr,$rldata);
}
返回$arr;
});           

您应该执行该函数,直到现在您才刚刚声明它

$data['cp'][$key]->prominence   = $meta_data['prominence'];
$data['cp'][$key]->related_link = call_user_func(function()
            {   $arr = array();
                for ( $i = 1; $i < 4 ; $i++ ) {
                    $rldata = array();
                    $rldata['title'] = $metadata['related_link_'.$i.'_title'];
                    $rldata['title'] = $metadata['related_link_'.$i.'_url'];
                    array_push( $arr, $rldata );
                    }
                return  $arr;
            });           
$data['cp'][$key]->突出度=$meta_data['突出度];
$data['cp'][$key]->related\u link=call\u user\u func(函数()
{$arr=array();
对于($i=1;$i<4;$i++){
$rldata=array();
$rldata['title']=$metadata['related_link'.$i.'u title'];
$rldata['title']=$metadata['related_link'.$i.'u url'];
阵列推送($arr,$rldata);
}
返回$arr;
});           

乍一看,在函数定义的末尾加一个():(function(){…whatever…})();不,大脑中有javascript。使用call\u user\u func。下面是例子。我脑子里也有javascript。乍一看,在函数定义的末尾加上一个();不,大脑中有javascript。使用call\u user\u func。接下来就是例子。我的大脑中也有javascript。