foreach 数组函数存储在变量中?

foreach array function storing in a variable?

提问人:Aaron 提问时间:3/19/2011 最后编辑:Aaron 更新时间:12/28/2011 访问量:2027

问:

 $numbers = array('1','2');
 $numberlist = foreach($numbers as $number) {
      echo $number;
 } 

正如你所看到的,我正在尝试做什么,它不起作用,有没有其他方法可以将 foreach 函数存储为变量?

PHP 数组变量

评论

2赞 Matteo Riva 3/19/2011
你到底想做什么?
0赞 Nanne 3/19/2011
这在 Echo 前面是问题的错别字吗?因为那行不通:)$
1赞 Mala 3/19/2011
我认为Matthew试图将过程或函数存储到变量中。但对于初学者来说,您需要删除“echo”前面的 $。然后看看下面的答案

答:

5赞 Kevin Peno 3/19/2011 #1
$numberList = function( $input )
{
    foreach( $input as $v )
        echo $v;
};

$numberList( $numbers );

参见 PHP Anon

注意:匿名函数从 PHP 5.3.0 开始可用。

(该函数应使用大写字母 L $numberList,以便正常工作。

评论

1赞 Naftali 3/19/2011
这仅在您拥有最新版本的 PHP (5.3.x) 时才有效
0赞 Aaron 3/19/2011
我正在使用 5.3.5;我使用了您给我的示例,但变量似乎没有输出?
1赞 Kevin Peno 3/19/2011
@Matthew,我假设您在调用匿名函数时传入了一个数组(参见示例的最后一行)?此外,该数组应仅包含字符串或数字。数组、布尔值和 null 值不能打印任何:P
1赞 Matteo Riva 3/19/2011 #2

如果您尝试在变量中存储对 foreach 循环的代码引用,则无法做到这一点:循环不是函数。$numberlist

如果你想要一个可以循环的对象,你需要构建一个中间器。如果是这种情况,我建议你看看标准PHP库

1赞 Mala 3/19/2011 #3

我认为Matthew试图做的是将函数存储在PHP的变量中。我认为这个链接就是你要找的:

http://php.net/manual/en/functions.variable-functions.php