PHP递归报错,该如何解决
程序员文章站
2022-05-24 09:50:59
...
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红色部分早就跟你标出错误的地方了。看回复不仔细。。
我写了一个类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红色部分早就跟你标出错误的地方了。看回复不仔细。。
相关文章
相关视频
推荐阅读
-
电脑连接考勤机错误提示错误代码=-2该如何解决?
-
win10系统还原出现Usage Error 10099该如何解决?
-
Win7看视频时突然出现watchdog.sys蓝屏该如何解决?
-
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
-
运行java弹出Orcale JInitiator 版本太旧该如何解决?
-
win10使用无线网络隔几分钟就系统卡死该如何解决?
-
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
-
Win7系统IE浏览器中毒该如何解决?
-
电脑开机为什么经常蓝屏该如何解决
-
哪些原因会引起电脑蓝屏?该如何解决