2013-10-25 139 views
0

如何在類中的函數中調用函數?如何調用函數中的函數

我的代碼看起來像這樣(examplified)

class Test 
{ 

    echo $this->unique(); 

    public function unique($unique = FALSE) 
    { 
     function random() 
     { 
      return 1; 
     } 

     while($unique === FALSE) 
     { 
      return $this->random(); 
      $unique = TRUE; 
     } 
    } 

} 

,但我得到了以下錯誤: 調用未定義的方法測試::隨機的()

+1

你在另一個函數內部聲明函數,所以你只需要在'random()'的局部範圍內調用它,'$ this-> random()'只會在函數屬於這個類時使用。 – naththedeveloper

回答

1

這不是$this->random();,它只是random()

您的嵌套函數不是Test類的方法,它只是一個函數,在您聲明它的方法中是局部的。


請注意,您的代碼似乎有一些非常嚴重的缺陷。

此代碼不起作用; while循環將會執行只有執行一次,它將只執行return語句。程序流程永遠無法到達$unique = TRUE行。

while($unique === FALSE) 
    { 
     return $this->random(); 
     $unique = TRUE; 
    } 
+0

完美,謝謝! – JohnSmith

+0

@JohnSmith請注意,您已經在代碼中寫入了一些非常嚴重的錯誤;看到我的更新 – meagar

0

只要使用random();

class Test 
{ 

    echo $this->unique(); 

    public function random() 
    { 
     return 1; 
    } 


    public function unique($unique = FALSE) 
    { 

     while($unique === FALSE) 
     { 
      return random(); 
      $unique = TRUE; 
     } 
    } 

} 
0

只要做到這一點:

這是一個示例代碼:

這是您目前的主要功能:

function parentFuntion() 
{ 
    childFuntion(); 
} 

這是您要調用的函數從您的主要功能

function childFuntion() 
{ 

} 
相關問題