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这是为什么呢?

就是一个终极小错误
php递归return结果始终为null的原因
这就是一个递归,但是他没有return 所以他return 一直为空
所以在
php递归return结果始终为null的原因
在它前面加个return 就行了。