2014-09-13 344 views
0

我有一個類 - validate_class。如何在另一種方法中調用方法?

  • 裏面的構造函數。

  • check_username函數包含驗證用戶名的其他方法。我想調用這三個在check_username方法中的方法。

代碼:

function check_username(){ 
      //Checks if is username empty 
      function validate_empty_username(){ 
       if($this->empty_username){ 
        echo "<li>Please fill username field</li>"; 
        return false; 
       } 
      }  

      //Check username length is short 
      function validate_username_length_min(){ 
       if(($this->get_username_length < 3) and ($this->empty_username !== true)){ 
        echo "<li>Username provided's too short!</li>"; 
        return false; 
       } 
      } 

      //Check username length is long 
      function validate_username_length_max(){ 
       if($this->get_username_length > 15){ 
        echo "<li>Username's too long</li>"; 
        return false; 
       } 
      }   
     } 
+1

我想你必須將'check_username'改爲一個類。 – JCOC611 2014-09-13 18:11:12

+0

函數用於執行小任務,這就是爲什麼它們不是嵌套的原因。所以你不能在函數內部創建一個函數,因爲它違反了函數定義 – CMPS 2014-09-13 18:13:16

回答

0

你是不是調用內部函數功能,而且定義它們。你應該打電話給check_username(),你可以在它外面定義它們。

Class validate_class 
{ 
    function validate_username_length_min(){ 
     if(($this->get_username_length < 3) and ($this->empty_username !== true)){ 
      echo "<li>Username provided's too short!</li>"; 
      return false; 
     } 
    } 

    //Check username length is long 
    function validate_username_length_max(){ 
     if($this->get_username_length > 15){ 
      echo "<li>Username's too long</li>"; 
      return false; 
     } 
    } 
    function validate_empty_username(){ 
     if($this->empty_username){ 
       echo "<li>Please fill username field</li>"; 
       return false; 
      } 
    } 
    function check_username(){ 
     //Checks if is username empty 
     $this->validate_empty_username($this->empty_username);//calling function 
     //Check username length is short 
     $this->validate_username_length_min();//calling function 
     //Check username length is long 
     $this->validate_username_length_max();//calling function 
    } 
} 
1

我不會建議將子條件語句放在函數中。

簡單得如下:

function check_username(){ 
      //Checks if is username empty 
       if($this->empty_username){ 
        echo "<li>Please fill username field</li>"; 
        return false; 
       } elseif(($this->get_username_length < 3) and ($this->empty_username !== true)){ 
        echo "<li>Username provided's too short!</li>"; 
        return false; 
       } elseif($this->get_username_length > 15){ 
        echo "<li>Username's too long</li>"; 
        return false; 
       } else { 
        return true; 
       } 
     } 

希望這有助於?

0

您必須對您的課程的隱藏方法使用私人聲明。將所有內部函數作爲私有方法。

相關問題