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

<?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()

BIG阳
浏览 894回答 6
6回答

MYYA

<?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); 帮你修正了一下

紫衣仙女

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

慕田峪9158850

$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);

MMMHUHU

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

互换的青春

$this->quick_sort()

HUWWW

类调用方法使用:$this
打开App,查看更多内容
随时随地看视频慕课网APP