首页 新闻 会员 周边

问一个PHP的问题

0
悬赏园豆:50 [已关闭问题] 关闭于 2015-06-12 15:02

$this->foo1();

public function foo1()
    {
        $arr9 = [0, 1, 2, 3, 4];
        \a_y::debug($this->foo2($arr9));
    }

public function foo2($arr)
    {
        static $result = [];
        $len = count($arr);
        if ($len < 1) {
            \a_y::debug($result);
            return $result;
        }
        $len --;
        $_a = rand(0, $len);
        array_push($result, $arr[$_a]);
        $new = [];
        foreach ($arr as $key=>$val){
            if ($val !== $arr[$_a]) {
                array_push($new, $val);
            }
        }
        $this->foo2($new);
    }

 

为什么我在foo1 里面debug出来是个空数组,而在foo2里面debug出来是有数据的?

php
清华大学副院长的主页 清华大学副院长 | 初学一级 | 园豆:28
提问于:2015-04-23 18:27
< >
分享
所有回答(2)
0
return $this->foo2($new);

你最后一句加一个return试试

五毛钱的饼 | 园豆:517 (小虾三级) | 2015-06-03 14:25

不对的,这个问题我用另外的方法解决了,把$result设置成全局的就可以了,但是问题的原因我还是想不通

支持(0) 反对(0) 清华大学副院长 | 园豆:28 (初学一级) | 2015-06-04 12:05
0

设置$result为全局变量可以实现功能

清华大学副院长 | 园豆:28 (初学一级) | 2015-06-04 13:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册