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



我喜欢:

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')
.....
}

不可能

相关内容

  • 没有找到相关文章

最新更新