我正在寻找从另一个类调用类方法的最佳方法,而不必使用Global来获取类实例,因为我现在理解"全局是邪恶的"!
以下是一些代码来解释它:
class Assets{
public $assets = array();
public function add($asset){
$this->assets[] = $asset;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想在这里调用Assets/call方法.
$assets = new Assets;
class Form{
public function __construct(){
global $assets;
$assets->add('Form');
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下使用Global是不是很糟糕?如果是这样,其他什么方式被认为是最好的?
PS:我只需要使用该类的一个实例; 意味着我不想在第二个类中创建一个新实例.
如果您只想拥有1个资产实例,则需要使用某种形式的依赖注入.
在这种情况下最明显的是将它传递给构造函数:
class Form{
public function __construct(Assets $assets){
$assets->add('Form');
}
}
Run Code Online (Sandbox Code Playgroud)
这是确实是一个坏主意,使用全局变量.
| 归档时间: |
|
| 查看次数: |
3699 次 |
| 最近记录: |