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
}