我在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?
答案 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();)。因此,我不明白为什么你会超出范围问题。