刚学会了PHP中的类型提示。在我的情况下,当它不应该有效时(类型提示不会为无效类型引发错误)。
在我的项目中,用户选择了一个游戏并提交了它。系统调用从类Game继承的相关对象,并调用其playGame()函数。
这样的游戏派生类应该是这样的:
class myGame extends Game
{
public function playGame()
{
...
}
}
调用对象的代码:
在系统中
// get className from user's $_POST
...
// invoke and pass to Player:
require_once "classes/".$class.".class.php";
$myObject=new $class();
$currentPlayer->setGame($myObject); // Gives the object to the Player.
// play the game
$currentPlayer->playGame(); // Calls Player to play the game.
对于玩家接收游戏,它使用以下方法:
class Player
{
...
public function setGame (Game $game) // * TYPE-HINTING.
{
this->game=$game;
}
...
}
现在我用一个恰好具有正确功能的类来测试我的系统,但是没有继承它 -
class Fake
// NOT extends Game
{
public function playGame()
{
...
}
}
问题是,当你调用Fake类时,它仍能正常工作 - 而不是抛出错误!