我喜欢:
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变量。 这些变量以复杂的方式阐述。为了简化这个详细说明,我需要创建类继承的树 - 但是在这种情况下,这些变量在子类中不会在没有将它们分配给类变量的情况下看到 - 但是这产生了大量的代码。
答案 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')
.....
}
不可能