为了账号安全,请及时绑定邮箱和手机立即绑定

php类里面的方法不能递归吗?

php类里面的方法不能递归吗?

PHP
BIG阳 2019-03-06 20:45:11
<?php class quick{ //快速排序 public function quick_sort($arr){ $base = $arr[0]; $left_array = array(); $right_array = array(); for($i = 1;$i<count($arr);$i++){ if($base>$arr[$i]){ $left_array[] = $arr[$i]; }else{ $right_array[] = $arr[$i]; } } $left_array = quick_sort($left_array); $right_array = quick_sort($right_array); return array_merge($left_array,array($base),$right_array); } } $test_arr =array(23,12,3,88,16,45,2,66); $sort = new quick(); $result = $sort->quick_sort($test_arr); var_dump($result); ?> 打印显示$left_array = quick_sort($left_array);这里开始出错, Call to undefined function quick_sort()
查看完整描述

6 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

<?php
    class quick {
        //快速排序
        public function quick_sort($arr){
            if(count($arr) <= 1){
                return $arr;
            }
            $base        = $arr[0];
            $left_array  = $right_array = [];
            for ($i = 1; $i < count($arr); $i++) {
                if($base > $arr[$i]){
                    $left_array[] = $arr[$i];
                } else {
                    $right_array[] = $arr[$i];
                }
            }
            $left_array  = $this->quick_sort($left_array);
            $right_array = $this->quick_sort($right_array);
            return array_merge($left_array, [$base], $right_array);
        }
    }

    $test_arr = [23,12,3,88,16,45,2,66];
    $sort     = new quick();
    $result   = $sort->quick_sort($test_arr);
    var_dump($result);

帮你修正了一下

查看完整回答
反对 回复 2019-03-18
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

在类文件中引用类中的方法或属性时,都需要用$this-> 指向,或者类中的方法or属性定义为static 在同类中用self::调用

查看完整回答
反对 回复 2019-03-18
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

$left_array = quick_sort($left_array);
$right_array = quick_sort($right_array);

改为

$left_array = $this->quick_sort($left_array);
$right_array = $this->quick_sort($right_array);
查看完整回答
反对 回复 2019-03-18
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

引用用$this ,但是你的代码出现死循环了

查看完整回答
反对 回复 2019-03-18
?
互换的青春

TA贡献1797条经验 获得超6个赞

$this->quick_sort()

查看完整回答
反对 回复 2019-03-18
?
HUWWW

TA贡献1874条经验 获得超12个赞

类调用方法使用:$this

查看完整回答
反对 回复 2019-03-18
  • 6 回答
  • 0 关注
  • 888 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信