мой код прост. но это дает мне ошибку выше, что функторная функция внутри функции не определена. Зачем ? Спасибо?
<?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));
?>
привязка factorial
будет искать глобальную функцию с таким именем. Но вы написали его как метод, поэтому он должен вызываться специально для объекта:
return ($number * $this->factorial($number-1));
$this->
ссылается на экземпляр объекта, внутри которого он вызывается.
В рекурсивном вызове должен быть указан префикс $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));