繁体   English   中英

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

[英]Using anonymous functions to generate arrays in PHP

我有这个代码块

        $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]->related_link等于匿名函数动态生成的多维数组。

但是当使用print_r它只是将键显示为等于Closure. 如何编辑代码以使其实际返回数组,而不是仅仅等于闭包。

这个怎么样:

<?php

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

?>

结果:

Closure Object
(
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

您应该执行该功能,直到现在您只是声明它

$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;
            });           

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM