我喜欢:
class Class2 extends Class1 {
.....
function __construct() {
parent::__construct();
$var_in_included_file;
}
}
class Class1 {
function __construct() {
include_once('my_file.php')
}
.....
}
my_file.hp:
$var_in_included_file=10;
问题是我无法接收$var_in_included_file的值。有没有一种方法可以在不添加许多代码的情况下接收这个值,比如:
$this->var=$var_in_included_file ....?
因为我有成千上万的变量。谢谢更抽象的问题是:在我(从$_POST)收到的某个文件中,变量接近500。这些变量以复杂的方式进行了阐述。为了简化这一阐述,我需要创建类继承树——但在这种情况下,如果不将这些变量分配给类变量,这些变量将不会出现在子类中——但这会产生大量的代码。
在第一类中,将变量分配给类变量:
class Class1{
private $someVariable;
public function __construct(){
include_once 'my_file.php';
// variable declared in my_file.php
$this->someVariable = $someVariable;
}
}
现在,可以通过$this->someVariable
在子类中访问该变量。
编码快乐,好运
如include()
和变量作用域中所述,当您在__construct()
方法中包含文件时,所包含文件中变量的作用域仅限于__construct()
方法,而不是类。
您可以选择更改包含文件的内容,在变量名(即$this->var_in_included_file = 10;
)前面包含$this->
,或者在__construct()
方法中添加$this->var_in_included_file = $var_in_included_file;
。
Class1 {
include_once('my_file.php')
.....
}
不可能