PHP需要全局范围

时间:2010-08-24 02:45:36

标签: php scope

我在php中遇到问题...我不完全理解整个require()的工作原理。我的理解是它接受当前类的成员变量并使它们在所需文件中全局化。如果是这种情况,那么为什么它也不采用基类的成员变量并使它们成为全局变量?

baseclass.php:

class BaseClass {
 var $user;
}

myclass.php:

class MyClass extends BaseClass {
 function doSomething() {
  require "page.php"
 }
} 

page.php文件:

$this->user // <- this is out of scope?

2 个答案:

答案 0 :(得分:2)

$this->user 可用。我刚试过它。

require()就像所需文件位于require命令的位置一样。没有更多,没有更少。

在您的示例中,所需文件获取函数的范围。

var $varname是旧样式:在PHP 5中,最好使用

之一
public $varname
private $varname
protected $varname

声明变量。

答案 1 :(得分:0)

我将假设myclass.php包含baseclass.php。

当你有include或require(差异只是它们返回的错误类型)时,php包含并评估指定文件(page.php),并包含你包含文件的方法的范围(doSomething();)。因此,我不明白为什么你会超出范围问题。