如何在另一个方法中调用方法?

时间:2014-09-13 18:08:37

标签: php function

我是一个类 - 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;
                }
            }           
        }

3 个答案:

答案 0 :(得分: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;
                }
        }

希望这有帮助吗?

答案 1 :(得分: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
    }
}

答案 2 :(得分:0)

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