2017-12-24 19 views
1

私のコードは簡単です。関数内のfunctorial関数が定義されていないという上記のエラーを私に与えます。どうして ?ありがとう?未定義関数階乗()への呼び出し

<?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)); 

?> 

答えて

2

参照factorialは、その名前のグローバル機能を検索します。しかし、あなたには、オブジェクトに対して、具体的に呼び出さなければなりませんので、方法としてそれを書いた:

return ($number * $this->factorial($number-1)); 

$this->は、それが中に呼び出されていますオブジェクトのインスタンスを参照します。

2

再帰呼び出しは次のように$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)); 
関連する問題