猿问

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

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


莫回无
浏览 159回答 3
3回答

心有法竹

通常不会自动打印任何内容,除非您渲染它(例如使用echo或var_dump())。有两种可能的方式:而不是在函数内return使用echo。但是,在这种情况下,您应该将函数名称更改为printForce()或 之类的名称renderForce(),以表达该函数的作用。在函数外使用返回值。您可以通过使用直接回显它,echo $perso->force()也可以将返回值保存到变量中:$force = $perso->force()并$force在代码中打印其他地方的值。重命名函数在这里也很有意义:getForce()更充分地表达,该函数将返回一些值。

阿波罗的战车

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

一只名叫tom的猫

使用 return 不会显示数据,您应该使用 echo/print/etc 来显示“返回”数据值。
随时随地看视频慕课网APP
我要回答