PHP OOP:如何在同一个类的另一个方法中使用方法?

问题描述:

How can I use a method inside another method of the same class? I have a getName() method that returns if the name field is empty or not, then if it is empty the return value would be displayed beside the textfield.

class UserInfo extends TextInput{

    public function setName($name){ 
        $this->name = $name;
    }

    public function getName(){
        if($isEmpty = Validate::isEmpty($this->name)){
            return "Name" . $isEmpty;
        }
        else{
            return $this->name;
        }
    }

    public function createUserInfo(){
        echo $this->createInput('NAME' ,'text', 'name'); //create text input for name
        getName(); //if 'submit', return the value of getname 
    }

}

You may try following in your createUserInfo method, just like properties/variables you used using the $this keyword, but only different is that, when are calling a method/function use ():

$this->getName();

The $this refers to the current object. Check this page on class basics in the PHP manual.

Easy, like this:

$UserInfo_class = new UserInfo();
$UserInfo_class->setsetName('Name');
$UserInfo_class->getName('Name');

But then you have this inside your class. Perhaps this is what your question is all about?

public function createUserInfo(){
    echo $this->createInput('NAME' ,'text', 'name'); //create text input for name
    getName(); //if 'submit', return the value of getname 
}

It should be; note the $this->:

public function createUserInfo(){
    echo $this->createInput('NAME' ,'text', 'name'); //create text input for name
    return $this->getName(); //if 'submit', return the value of get name 
}