dsij89625
dsij89625
2014-06-14 00:16

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 
    }

}
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • dongxixia6399 dongxixia6399 7年前

    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.

    点赞 评论 复制链接分享
  • drl47263 drl47263 7年前

    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 
    }
    
    点赞 评论 复制链接分享