Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP$this在类内用于引用类_Php_This_This Pointer - Fatal编程技术网

PHP$this在类内用于引用类

PHP$this在类内用于引用类,php,this,this-pointer,Php,This,This Pointer,我有一个函数loadModule()在类core中,但要加载模块,我需要在构造中定义变量,其中许多都需要core。我会简单地使用loadModule(“someModule”、$settings、$dbc、$core、$etc.)或加载模块(“someModule”、$settings、$dbc、$this、$etc.)因为此函数位于由$core定义的核心类中?我现在很困惑,希望你能帮助我。谢谢 编辑: 预期用途类似于 $this->core->loadModule(“initialLoad,$

我有一个函数
loadModule()在类
core
中,但要加载模块,我需要在构造中定义变量,其中许多都需要core。我会简单地使用
loadModule(“someModule”、$settings、$dbc、$core、$etc.)
加载模块(“someModule”、$settings、$dbc、$this、$etc.)因为此函数位于由$core定义的核心类中?我现在很困惑,希望你能帮助我。谢谢

编辑:

预期用途类似于
$this->core->loadModule(“initialLoad,$settings,$version,$dbc,$parser,$layout);

模块构造看起来像

public function __construct($settings, $version, $dbc, $layout, $core, $parser){
    $this->settings = $settings;
    $this->version = $version;
    $this->dbc = $dbc;
    $this->layout = $layout;
    $this->core = $core;
    $this->parser = $parser;

}

我会研究依赖注入。也许可以使用类似的方法

让你的容器初始化你的所有模块。如果你需要更高级的使用,你可能会代理这些服务,使它们在第一次使用时惰性地实例化


然后,您可能会将核心注入类中,并根据自己的喜好使用加载的模块。

您能提供一个简短的预期用途示例吗?听起来您可能能够利用的一件事是类constants@Rasclatt那是什么?我以前从来没听说过。编辑:这像core::function()吗;那么$core将自身(包含类)作为一个资源?@Rasclatt这个场景是在页面生成中,而页面生成在core之外。我想加载模块可以放在页面类中。所以这个(以及Rasclatt的注释)这让我想到了一个主意:在页面初始化类中使用模块加载器。从技术上讲,这会更有意义,因为它使用不多,并且会消除这个问题