如何从函数中调用函数?
function tt($data,$s,$t){
$data=$data;
echo '[[';
print_r($data);
echo ']]';
if($t==0){
$data[]=$s;
tt($data,'two',1);
}else{
$data[]=$s;
}
return $data;
}
print_r(tt('','one',0));
我想要'两个'在数组中显示如
$o[]='one';
$o[]='two';
print_r($o);
答案 0 :(得分:1)
function tt($s, $t, array $data = array()) {
$data[] = $s;
if ($t == 0) {
$data = tt('two', 1, $data);
}
return $data;
}
print_r(tt('one', 0));
这就是他们真正需要的。
tt
时,您需要" catch"它的返回数据,否则递归调用根本不会产生持久的价值。else
,因为您无论如何都要将条目附加到数组中,并且不需要再写两次。答案 1 :(得分:0)
试试这个(注意函数签名,数组由ref & $ data 传递):
function tt(&$data,$s,$t){
echo '[[';
print_r($data);
echo ']]';
if($t==0){
$data[]=$s;
tt($data,'two',1);
}else{
$data[]=$s;
}
return $data;
}
$array = [];
tt($array,'one',0);
print_r($array);
/**
Array
(
[0] => one
[1] => two
)
*/
答案 2 :(得分:-1)
试试这个
function tt($data,$s,$t){
global $data;
if($t==0){
$data[]=$s;
tt($data,'two',1);
}else{
$data[]=$s;
}
return $data;
}
print_r(tt('','one',0));
输出:
Array
(
[0] => one
[1] => two
)
<强> DEMO 强>