为什么我的 return 函数不工作?
Why isn't my return function not working?
我正在 PHP 学习面向对象编程,在我的课程中,老师使用 return 函数来打印函数属性。
我自己试了一下,没有出现。然后我 copy/pasted 它仍然无法正常工作。我知道这不正常,想确定这是 WAMP 问题还是 PHP7.2.18。已试穿 chrome。
当我超过100的时候,错误就在这里,这很正常。
我写信的时候,错误也在这里
但是当我写一个 0 到 100 之间的数字时,它通常应该 return 我的答案。
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,但是,正如我所说,什么都没有。
如果你想要$perso->force();作为输出你必须回应它
echo $perso->force();
通常不会自动打印任何内容,除非您渲染它(例如使用 echo
或 var_dump()
)。
有两种可能的方法:
而不是 return
在函数中使用 echo
。但是,在这种情况下,您应该将函数名称更改为 printForce()
或 renderForce()
之类的名称,以表达函数的作用。
在函数外使用 return 值。您可以使用 echo $perso->force()
直接回显它,或者将 return 值保存到变量:$force = $perso->force()
并在代码中的其他地方打印 $force
的值。重命名函数在这里也有意义:getForce()
更足以表达函数将 return 一些值。
使用return不会显示数据,您应该使用echo/print/etc来显示"return"数据值。
我正在 PHP 学习面向对象编程,在我的课程中,老师使用 return 函数来打印函数属性。
我自己试了一下,没有出现。然后我 copy/pasted 它仍然无法正常工作。我知道这不正常,想确定这是 WAMP 问题还是 PHP7.2.18。已试穿 chrome。 当我超过100的时候,错误就在这里,这很正常。
我写信的时候,错误也在这里
但是当我写一个 0 到 100 之间的数字时,它通常应该 return 我的答案。
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,但是,正如我所说,什么都没有。
如果你想要$perso->force();作为输出你必须回应它
echo $perso->force();
通常不会自动打印任何内容,除非您渲染它(例如使用 echo
或 var_dump()
)。
有两种可能的方法:
而不是
return
在函数中使用echo
。但是,在这种情况下,您应该将函数名称更改为printForce()
或renderForce()
之类的名称,以表达函数的作用。在函数外使用 return 值。您可以使用
echo $perso->force()
直接回显它,或者将 return 值保存到变量:$force = $perso->force()
并在代码中的其他地方打印$force
的值。重命名函数在这里也有意义:getForce()
更足以表达函数将 return 一些值。
使用return不会显示数据,您应该使用echo/print/etc来显示"return"数据值。