php递归return结果始终为null的原因
今天给大家分享一个终极小错误。。 就是 “调用一个递归方法发现无论返回null,但是返回值在递归应该是存在的”
function per_prev($permission_id,$per_ids){
$ww = array_merge($permission_id,$per_ids);
$where['pid'] = array('in',$permission_id);
$ids = M('db')->where($where)->field('id')->select();
if($ids){
$ids = array_change($ids,'id');
$this->per_prev($ids,$ww);
}else{
return $ww;//$ww 是有数据的并且是一个数组
}
}
$perids = $this->per_prev(“5”,array());
var_dump($perids);
这个时候我打印$perids 的到的结果是null这是为什么呢?
就是一个终极小错误
这就是一个递归,但是他没有return 所以他return 一直为空
所以在
在它前面加个return 就行了。