PHP类继承包含文件中的变量

时间:2011-06-25 20:46:54

标签: php class file include extends

我喜欢:

class Class2 extends Class1 {
.....
 function __construct() {
 parent::__construct();
   $var_in_included_file;
}   
}

class Class1 {
function __construct() {
 include_once('my_file.php')
}
.....
}

my_file.php:

$var_in_included_file=10;

问题是我无法获得$ var_in_included_file的值。有没有办法接收这个值而不添加许多抄本:

$this->var=$var_in_included_file ....? 

因为我有成千上万的变量。 谢谢。 更抽象的问题是: 在某个文件中我收到(来自$ _POST)接近500变量。 这些变量以复杂的方式阐述。为了简化这个详细说明,我需要创建类继承的树 - 但是在这种情况下,这些变量在子类中不会在没有将它们分配给类变量的情况下看到 - 但是这产生了大量的代码。

3 个答案:

答案 0 :(得分:2)

在第一课中,将变量分配给类变量:

class Class1{
   private $someVariable;

 public function __construct(){
    include_once 'my_file.php';
     // variable declared in my_file.php        
    $this->someVariable = $someVariable;        
    }       

}

现在,通过$this->someVariable可以在子类中访问该变量。

快乐的编码,祝你好运

答案 1 :(得分:1)

正如include()variable scopes中所述,当您在__construct()方法中包含文件时,您所包含文件中变量的范围仅限于{{ 1}}方法,而不是类。

您的选择是更改所包含文件的内容,以在变量名称前加__construct()(即$this->),或在{{$this->var_in_included_file = 10;中添加$this->var_in_included_file = $var_in_included_file; 1}}方法。

答案 2 :(得分:0)

Class1 {

include_once('my_file.php')
.....
}

不可能