2014-09-13 153 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

您必须对您的课程的隐藏方法使用私人声明。将所有内部函数作为私有方法。

相关问题