方法参数中的PHP类型提示不起作用

时间:2013-11-18 04:00:35

标签: php

刚学会了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类时,它仍能正常工作 - 而不是抛出错误!

0 个答案:

没有答案