为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的返回功能不起作用?

为什么我的返回功能不起作用?

PHP
莫回无 2021-11-13 19:09:39
我正在学习 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个赞

通常不会自动打印任何内容,除非您渲染它(例如使用echovar_dump())。

有两种可能的方式:

  1. 而不是在函数内return使用echo。但是,在这种情况下,您应该将函数名称更改为printForce()或 之类的名称renderForce(),以表达该函数的作用。

  2. 在函数外使用返回值。您可以通过使用直接回显它,echo $perso->force()也可以将返回值保存到变量中:$force = $perso->force()$force在代码中打印其他地方的值。重命名函数在这里也很有意义:getForce()更充分地表达,该函数将返回一些值。


查看完整回答
反对 回复 2021-11-13
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

如果你想要 $perso->force(); 作为输出,你必须回应它

echo $perso->force();


查看完整回答
反对 回复 2021-11-13
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

使用 return 不会显示数据,您应该使用 echo/print/etc 来显示“返回”数据值。


查看完整回答
反对 回复 2021-11-13
  • 3 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信