Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 构造中对象集的变量在析构函数中超出范围_Php_Oop_Scope - Fatal编程技术网

Php 构造中对象集的变量在析构函数中超出范围

Php 构造中对象集的变量在析构函数中超出范围,php,oop,scope,Php,Oop,Scope,因此,我开始为一个微型框架编写一个引导脚本,我正在为学习目的而工作(学习更多关于编程、php和oop的知识),我遇到了这种奇怪的意外行为 启动config()类的新对象的变量$config在Bootstrap的公共_构造中调用,然后在Bootstrap的公共_析构函数中使用。$config的变量本身是公共的,在_构造之前声明,如下所示 现在,奇怪的是,我在_destruct中使用$config时收到一个通知和致命错误,它说变量不存在,致命错误是在非对象上调用成员函数(因为$config不存在)

因此,我开始为一个微型框架编写一个引导脚本,我正在为学习目的而工作(学习更多关于编程、php和oop的知识),我遇到了这种奇怪的意外行为

启动config()类的新对象的变量$config在Bootstrap的公共_构造中调用,然后在Bootstrap的公共_析构函数中使用。$config的变量本身是公共的,在_构造之前声明,如下所示

现在,奇怪的是,我在_destruct中使用$config时收到一个通知和致命错误,它说变量不存在,致命错误是在非对象上调用成员函数(因为$config不存在)

这是脚本,希望有人能指出为什么会发生这种奇怪的行为,可能是我遗漏了什么,而且这种行为是有道理的,但好吧,我遗漏了它,然后请指出它

执行此操作时:

$config = new Config();
您正在构造函数的作用域中创建一个新的
$config
对象,而不是填充
引导类的
$config
属性


您必须使用
$this->config
;要访问class属性,我不知道为什么$此->设置();调用包含Config类文件的函数。然后$config被设置为new config();并且应该在引导类中广泛可用,因为它被声明为public,并且在构造函数中被分配了一个对象。不,变量
$config
的范围仅在构造函数中,而不是在wide类中。你说的是
$this->config
这是classIt作品的公共财产,谢谢!)我想我误解了oop的一些概念。事实上,要在PHP中访问class属性,必须在它前面加上
$this
,而在其他编程语言中,可以避免使用
$this
前缀。我理解,感谢您的帮助,我非常感谢。