首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用未定义的函数factorial()

调用未定义的函数factorial()
EN

Stack Overflow用户
提问于 2017-12-25 00:04:28
回答 2查看 129关注 0票数 1

我的代码很简单。但它给了我上面的错误,函数内部的函数是未定义的。为什么?谢谢?

代码语言:javascript
复制
<?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));

?>
EN

回答 2

Stack Overflow用户

发布于 2017-12-25 00:07:05

引用factorial将查找具有该名称的全局函数。但是您已经将其编写为一个方法,因此必须专门针对对象调用它:

代码语言:javascript
复制
return ($number * $this->factorial($number-1));

$this->引用要在其中调用它的对象实例。

票数 2
EN

Stack Overflow用户

发布于 2017-12-25 00:07:18

递归调用需要以$this作为前缀,如下所示:

代码语言:javascript
复制
<?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));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47962130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档