从课堂外调用函数

时间:2010-12-25 17:13:17

标签: php class function

我试图从课外调用函数并遇到问题:

class Factorial{

    public function factorial($number) {
        if ($number < 2) {
            return 1;
        } else {
            return ($number * factorial($number-1));
        }
    }
}

$f = new Factorial();
echo $f->factorial(5);

有人可以指出我正确的方向吗?

非常感谢

2 个答案:

答案 0 :(得分:3)

你的问题不在外面,而在于内部:

public function factorial($number) {
    if ($number < 2) {
        return 1;
    } else {
        return ($number * $this->factorial($number-1));
    }
}

如果你想引用另一种方法,你必须使用$this->methodname $this引用实例:

  

从对象上下文中调用方法时,伪变量$this可用。 $this是对调用对象的引用(通常是方法所属的对象(...))

我建议阅读PHP - OOP - The Basics

答案 1 :(得分:2)

$this->factorial($number-1)是你想要的类方法。代码变得混乱,因为你将类命名为函数(并且它认为它是构造函数)。