我正在学习 PHP 中的面向对象编程,在我的课程中,老师使用返回函数来打印函数属性。我自己试过了,什么也没出现。然后我复制/粘贴它,它仍然无法正常工作。我知道这不正常,想确定是 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,但正如我所说,什么都没有。
3 回答
心有法竹
TA贡献1866条经验 获得超5个赞
通常不会自动打印任何内容,除非您渲染它(例如使用echo
或var_dump()
)。
有两种可能的方式:
而不是在函数内
return
使用echo
。但是,在这种情况下,您应该将函数名称更改为printForce()
或 之类的名称renderForce()
,以表达该函数的作用。在函数外使用返回值。您可以通过使用直接回显它,
echo $perso->force()
也可以将返回值保存到变量中:$force = $perso->force()
并$force
在代码中打印其他地方的值。重命名函数在这里也很有意义:getForce()
更充分地表达,该函数将返回一些值。
- 3 回答
- 0 关注
- 158 浏览
添加回答
举报
0/150
提交
取消