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

时间:2019-08-05 17:29:15

标签: php wamp

我正在学习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,但正如我所说,什么也没有。

3 个答案:

答案 0 :(得分:0)

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

AA, AB

答案 1 :(得分:0)

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

有两种可能的方法:

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

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

答案 2 :(得分:0)

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