Add
快速提问,我正在学习PHP类,我试图将_first_name和_last_name分别从这个类中返回。
所以回显echo $ person1-> returnData();将返回名字,我如何单独返回第二个名字? echo $ person1-> returnData(" _last_name");这样的事情?但我知道错了!
答案 0 :(得分:2)
流行的方法是在课堂上使用getter:
public function getFirstName()
{
return $this->_first_name;
}
public function getLastName()
{
return $this->_last_name;
}
示例:
echo $person1->getLastName() . ' ' . $person1->getFirstName();
如果要一次返回多个值,请使用array:
public function returnData()
{
return [
'first_name' => $this->_first_name,
'last_name' => $this->_last_name,
];
}
示例:
$personData = $person1->returnData();
echo $personData['first_name'] . ' ' . $personData['last_name'];
答案 1 :(得分:1)
您可以使用这种方式返回特定变量的值。
public function returnData($name)
{
return $this->$name;
}
要获取任何变量的值,您可以通过$person1->returnData("_last_name");
对于名字,
echo $person1->returnData("_first_name");
对于第二个名字,
echo $person1->returnData("_last_name");
答案 2 :(得分:0)
你可以试试这个:
public function returnData()
{
return array($this->_first_name, $this->_last_name);
}
// ...
list($firstName, $lastName) = $person1->returnData();
echo $firstName . ' ' . $lastName;
答案 3 :(得分:0)
你不能在这样的相同函数中返回2个值。
您必须返回一个数组或对象:
public function returnData(){
return [
'first_name' => $this->_first_name,
'last_name' => $this->_last_name
];
}
$first_name = $person1->returnData()['first_name'];
答案 4 :(得分:0)
returnData()
函数中有两个返回值:
public function returnData()
{
return $this->_first_name;
return $this->_last_name;
}
第二个不会被执行,因为该函数在frist之后退出。 请查看getter和setter - 您需要单独的属性单独的函数 - 或将它们作为数组返回。
答案 5 :(得分:0)
您无法直接按照自己的意愿行事。导致第一次返回将退出该功能。 然而,有多种方法可以解决这个限制,事实上这个问题已在这里得到解答:
Multiple returns from function
我相信它会对你有帮助。
答案 6 :(得分:0)
你的函数returnData()在遇到第一次返回后停止。 您应该创建两个单独的函数getFirstName和getLastName:
public function getFirstName() {
return $this->_first_name;
}
public function getLastName() {
return $this->_last_name;
}
您还可以创建一个带参数和if语句的函数来返回所需的值,但我不推荐它,因为它是一个不必要的测试。