[英]Why isn't my return function not working?
我正在學習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,但正如我所說,什么也沒有。
如果你想要$ perso-> force(); 作為輸出,您必須回顯它
echo $perso->force();
通常,除非您進行渲染(例如,使用echo
或var_dump()
),否則不會自動打印任何內容。
有兩種可能的方法:
在函數內使用echo
代替return
。 但是,在這種情況下,您應該將函數名稱更改為printForce()
或renderForce()
,以表達函數的作用。
在函數外使用返回值。 您可以使用echo $perso->force()
直接回顯它,也可以將返回值保存到變量中: $force = $perso->force()
並在代碼中的其他位置打印$force
的值。 重命名該函數在這里也很有意義: getForce()
足以表示,該函數將返回一些值。
使用return不會顯示數據,您應該使用echo / print / etc來顯示“ return”數據值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.