我的代码很简单。但它给了我上面的错误,函数内部的函数是未定义的。为什么?谢谢?
<?php
class fact
{
public function factorial($number) {
if ($number < 2) {
return 1;
} else {
return ($number * factorial($number-1));
}
}
}
$obj = new fact();
var_dump($obj->factorial(6));
?>发布于 2017-12-25 00:07:05
引用factorial将查找具有该名称的全局函数。但是您已经将其编写为一个方法,因此必须专门针对对象调用它:
return ($number * $this->factorial($number-1));$this->引用要在其中调用它的对象实例。
发布于 2017-12-25 00:07:18
递归调用需要以$this作为前缀,如下所示:
<?php
class fact
{
public function factorial($number) {
if ($number < 2) {
return 1;
} else {
return ($number * $this->factorial($number-1));
}
}
}
$obj = new fact();
var_dump($obj->factorial(6));https://stackoverflow.com/questions/47962130
复制相似问题