-1

所以我有3个文件

文件1.php

$var = "string";

文件2.php

include(file1.php); 
include(file3.php); 
echo $var; 
$test = new test(); 

文件3.php

 class test
 {
   public function __construct()
   {
    if($var = "string") 
    { 
        // do things
    } 
   }
  }

现在,文件 2 中的回显工作正常但是,在测试类中,变量返回一个通知:未定义变量:我尝试将 $var 更改为全局变量,但这似乎没有帮助。我想我没有正确理解 PHP 中包含的文件的范围。任何人都可以帮助我,以便我可以在课堂上使用 $var 吗?

谢谢

4

1 回答 1

1

有两种方法可以做到这一点

错误的方法

class test
{
    public function __construct()
    {
        global $var;
        if($var == "string") 
        { 
            // do things
        } 
    }
}

这会将 var 导入构造函数范围,但违反了面向对象编程的最大好处,即封装功能。

这是正确的方法

class test
{
    public function __construct($var)
    {
        if($var == "string") 
        { 
            // do things
        } 
    }
}

$test = new test($var);
于 2013-06-05T19:25:05.533 回答