Heim  >  Artikel  >  Backend-Entwicklung  >  PHP递归报错,该如何解决

PHP递归报错,该如何解决

WBOY
WBOYOriginal
2016-06-13 11:53:161226Durchsuche

PHP递归报错
我写了一个类Sort.php,里面的方法实现快速排序代码如下:
class Sort{
       public function quickSort($arr){
$count=count($arr);
if($count return $arr;
$key=$arr[0];
$left_arr=array();
$right_arr=array();
for($i=1;$i if($arr[$i] $left_arr[]=$arr[$i];
}else{
$right_arr[]=$arr[$i];
}
}
$left_arr=quickSort($left_arr);
$right_arr=quickSort($right_arr);
return array_merge($left_arr,array($key),$right_arr);
}
}
?>
然后写了个测试,sortTest.php,代码如下
 
require('Sort.php');
$array=array(12,15,9,20,6,31,24);
$sort=new Sort();
$arr=$sort->quickSort($array);
$arr=quickSort($array);
print_r($arr);

?>
当我运行这个测试文件时,报错如下:
Fatal error: Call to undefined function quickSort() in D:\WWW\PHPDemo\suanfa\Sort.php on line 75
说我调用了一个没定义的方法,但是当我把这个方法放在sortTest.php中运行时,没有问题。请帮忙解释下这是为什么,万分感谢~
------解决方案--------------------
类的方法是有作用域的
$left_arr=$this->quickSort($left_arr);
$right_arr=$this->quickSort($right_arr);
------解决方案--------------------
汗,#1红色部分早就跟你标出错误的地方了。看回复不仔细。。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn