【问题标题】:Function return and foreach trouble函数返回和foreach的麻烦
【发布时间】:2011-07-26 16:27:10
【问题描述】:

我有一个简单的功能:

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

不“看到” $one 和 $two 变量。我确定我遗漏了一些东西,并且可能有更简单的方法?

【问题讨论】:

    标签: php function foreach return syntax-error


    【解决方案1】:

    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() 只确保对数组的每个项目执行此代码。

    【讨论】:

    • 天哪,这太棒了!检查! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 2013-02-09
    • 2023-03-13
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    相关资源
    最近更新 更多