我有一个简单的功能:
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变量。我确定我错过了一些东西,这可能是一种更简单的方法吗?
答案 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()
只确保为你的数组的每个项执行此代码。