在一个类中,我有一个从外部文件中读取一些变量的方法。然后我使用这些包含的变量设置成员变量。但是,只要此方法完成,成员变量就会重置为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类定义中的公共变量。
答案 0 :(得分:1)
直接从手册中引用......
当包含文件时,它包含的代码将继承发生包含的行的变量范围。从那时起,调用文件中该行可用的任何变量都将在被调用文件中可用。但是,包含文件中定义的所有函数和类都具有全局范围。
因此....
public function init() {
$included_value=false;
include('/includefile.inc');
$this->value = $included_value;
echo $this->value;
}
应该按预期工作。