我正在学习PHP中的面向对象编程,在我的课程中,老师使用return函数来打印函数属性。
我自己尝试过,什么也没出现。然后,我复制/粘贴了它,但仍然无法正常工作。我知道这是不正常的,请确保这是WAMP问题还是PHP7.2.18。在铬上试过。 当我超过100时,错误就出在这里,这很正常。
当我写信时,错误也在这里。
但是当我写一个介于0到100之间的数字时,通常它应该返回我的答案。
class Personnage
{
private $_force;
private $_experience;
private $_degats;
public function frapper(Personnage $persoAFrapper)
{
$persoAFrapper->_degats += $this->_force;
}
public function gagnerExperience()
{
$this->_experience++;
}
// Mutateur chargé de modifier l'attribut $_force.
public function setForce($force)
{
if (!is_int($force)) // S'il ne s'agit pas d'un nombre entier.
{
trigger_error('La force d\'un personnage doit être un nombre entier', E_USER_WARNING);
return;
}
if ($force > 100) // On vérifie bien qu'on ne souhaite pas assigner une valeur supérieure à 100.
{
trigger_error('La force d\'un personnage ne peut dépasser 100', E_USER_WARNING);
return;
}
$this->_force = $force;
}
// Ceci est la méthode force() : elle se charge de renvoyer le contenu de l'attribut $_force.
public function force()
{
return $this->_force;
}
}
$perso = new Personnage;
$perso->setForce(100);
$perso->force();
输出应为50,但正如我所说,什么也没有。
答案 0 :(得分:0)
如果要$ perso-> force();作为输出,您必须回显它
AA, AB
答案 1 :(得分:0)
通常,除非您进行渲染(例如,使用echo
或var_dump()
),否则不会自动打印任何内容。
有两种可能的方法:
在函数中使用return
代替echo
。但是,在这种情况下,您应该将函数名称更改为printForce()
或renderForce()
之类,以表达函数的作用。
在函数外部使用返回值。您可以使用echo $perso->force()
直接回显它,也可以将返回值保存到变量$force = $perso->force()
中,并在代码中的其他位置打印$force
的值。重命名该函数在这里也很有意义:getForce()
足以表示,该函数将返回一些值。
答案 2 :(得分:0)
使用return将不会显示数据,您应该使用echo / print / etc显示“返回”数据值。