PHP包括丢失范围的文件变量

时间:2015-06-21 20:51:41

标签: php class object scope include

在一个类中,我有一个从外部文件中读取一些变量的方法。然后我使用这些包含的变量设置成员变量。但是,只要此方法完成,成员变量就会重置为null。我做错了什么?

main.php

$bob = new Object();
$bob->init();
echo $bob->value;

Object.php

public function init() {
include('/includefile.inc');
$this->value = $included_value;
echo $this->value;
}

includefile.inc

<? $included_value = 'Hello World'; ?>

Object.php中的echo将正常工作,但main中的echo将为null。 value是Object.php类定义中的公共变量。

1 个答案:

答案 0 :(得分:1)

直接从手册中引用......

  

当包含文件时,它包含的代码将继承发生包含的行的变量范围。从那时起,调用文件中该行可用的任何变量都将在被调用文件中可用。但是,包含文件中定义的所有函数和类都具有全局范围。

因此....

public function init() {
 $included_value=false;
 include('/includefile.inc');
 $this->value = $included_value;
 echo $this->value;
}

应该按预期工作。