功能返回和foreach麻烦

时间:2011-07-26 16:27:10

标签: php function foreach return syntax-error

我有一个简单的功能:

function name() {
 extract( myfunction_atts( array(
        'one' => '',  
        'two' => '',  
        ), $atts ) ); 

  /* CODE */

 return $output; /* return dataName(); in second case */
}

现在,我希望返回输出此代码:

    $output .= include_once(ADDRESS_CONST."/script.php");
    $output .= $data = data($one); 
    $output .= foreach($data->do($two) as $e) {;
    $output .= $e->info;
    $output .= } ;    

提供语法错误,意外T_FOREACH

所以我需要一个函数,重点是:

function dataName() {

        /* global $one;
        global $two;
        doesn't work */

        include_once(ADDRESS_CONST."/script.php");
        $data = data($one); 

        foreach($data->do($two) as $e) {;
          $e->info;
        } ;  
}

不“看到”$ 1和$ 2变量。我确定我错过了一些东西,这可能是一种更简单的方法吗?

1 个答案:

答案 0 :(得分:3)

不能像这样指定foreach:

$output .= foreach($data->do($two) as $e) {;
$output .= $e->info;
$output .= } ; 

相反,您想要的是使用foreach()循环,并在循环内部将当前值分配给$output

foreach ($data->do($two) as $e) {
    $output .= $e->info;
}


基本上,foreach()是一个控制结构:它允许你的脚本循环;但这就是全部:它本身不会返回任何价值。

另一方面,在循环内部,你可以做任何你想做的事情:foreach()只确保为你的数组的每个项执行此代码。