PHP>;如何将一个类划分为多个类?
我有一个很大的PHP类叫做“Player” 里面有很多函数(将近2000行)。实际上,我是这样使用这些函数的:PHP>;如何将一个类划分为多个类?,php,class,object,constructor-chaining,Php,Class,Object,Constructor Chaining,我有一个很大的PHP类叫做“Player” 里面有很多函数(将近2000行)。实际上,我是这样使用这些函数的: $player = new Player(1) echo $player->getLogin(); echo $player->getStatisticPerception(); echo $player->getWeaponId(); echo $player->attackPlayerId(3,$player->getWeaponId()); 我认为
$player = new Player(1)
echo $player->getLogin();
echo $player->getStatisticPerception();
echo $player->getWeaponId();
echo $player->attackPlayerId(3,$player->getWeaponId());
我认为把这个类分成多个类是个好主意,但我不知道怎么做。我如何创建类似的内容,例如:
$player = new Player(1);
echo $player->getLogin();
echo $player->statistics->getAttack();
echo $player->stuff->getWeaponId();
echo $player->doAction->attackPlayerId(3, $player->getWeaponId());
如果我认为我必须在这个对象内创建一个对象,但是如果我这样做了,我就不能访问主“$player”的对象数据(例如,在Stuff对象中,我不能访问player对象的$level变量)。你可以使用类继承
Class Player {
protected $level;
public $stuff;
function __construct() {
$this->stuff = new Stuff();
}
}
Class Stuff extends Player {
function getWeaponId() {
// You can access Player's $level here using $this->level
}
}
您可以使用类继承
Class Player {
protected $level;
public $stuff;
function __construct() {
$this->stuff = new Stuff();
}
}
Class Stuff extends Player {
function getWeaponId() {
// You can access Player's $level here using $this->level
}
}
在这样一行中:
echo $player->statistics->getAttack();
您正在访问Player类的统计信息
成员。为了使用链接,该变量还必须是对象。您可以创建一个单独的统计类,其中包括getAttack
方法。然后在Player类构造函数中,将$this->statistics
初始化为statistics类的实例
类似地,对于stuff
和doAction
,它们需要是对象。虽然我不确定它们是否真的适合单独的对象。在这样一行中:
echo $player->statistics->getAttack();
您正在访问Player类的统计信息
成员。为了使用链接,该变量还必须是对象。您可以创建一个单独的统计类,其中包括getAttack
方法。然后在Player类构造函数中,将$this->statistics
初始化为statistics类的实例
类似地,对于
stuff
和doAction
,它们需要是对象。虽然我不确定它们是否适合单独的对象。您可以创建多个类别,如玩家统计
、武器
和玩家动作
,并将它们链接到玩家类。。。例如:
class Player{
private Statistics;
private Weapon;
function __construct(){
$this->Statistics = new Statistics($this);
$this->Weapon = new Weapon($this);
}
function getAttack(){
return $this->Statistics->getAttack();
}
}
class Statistics{
private Player;
function __construct($_player){
$this->Player = $_player;
}
}
像这样的事。。。这是一个,取决于对象之间的关系
希望这有帮助您可以创建多个类别,如
玩家统计
、武器
和玩家动作
,并将它们链接到玩家类别。。。例如:
class Player{
private Statistics;
private Weapon;
function __construct(){
$this->Statistics = new Statistics($this);
$this->Weapon = new Weapon($this);
}
function getAttack(){
return $this->Statistics->getAttack();
}
}
class Statistics{
private Player;
function __construct($_player){
$this->Player = $_player;
}
}
像这样的事。。。这是一个,取决于对象之间的关系
希望这有帮助