到目前为止,我觉得我已经理解了OOP编程的概念和优点,而且我对理解如何使用
PHP中的类没有任何困难.
然而,这让我有点困惑.我想我可能会理解,但我仍然不确定.
我一直在关注一组视频教程(不确定链接到外部资源的规则,但我在youtube上找到它们),并且它们非常自我解释.除了令人沮丧的是,当导师决定将一个类作为参数传递给另一个类时.至少我认为这是正在发生的事情;
Class Game
{
public function __construct()
{
echo 'Game Started.
';
}
public function createPlayer($name)
{
$this->player= New Player($this, $name);
}
}
Class Player
{
private $_name;
public function __construct(Game $g, $name)
{
$this->_name = $name;
echo "Player {$this->_name} was created.
";
}
}
然后我实例化Game类的一个对象并调用它的方法;
$game = new Game();
$game-> createPlayer('new player');
相当令人沮丧的是,导师并没有真正解释他为什么这样做,并且在我看来,并没有显示代码中任何可以证明这一点的调用.
Player中的魔术方法构造函数是否在Game类中作为引用传递?这是否意味着可以通过引用在Player类中访问整个类?在引用$this而不指向任何特定方法或属性时,是否引用了整个类?
如果这是正在发生的事情,那么我为什么要这样做呢?如果我在我的游戏类中创建了一个播放器,那么我肯定可以在游戏类中访问我的播放器属性和方法,对吧?为什么我还要在我的Player类中使用我的Game Class?例如,我可以在Player类中调用createPlayer()吗?
如果我的解释一直令人困惑,我道歉.
我想我的问题归结为;什么是我作为参数准确传递,为什么我想在每天OOP编程中做到这一点?