dsij89625
2014-06-14 00:16
浏览 19
已采纳

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 2014-06-14 00:17
    已采纳

    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 2014-06-14 00:18

    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 
    }
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题