我有一个模板类,如下所示:
class Template{
public $pageTitle = "";
public function __construct($pageTitle){
$this->pageTitle = $pageTitle;
}
public function display(){
include "/includes/head.php";
include "/includes/body.php";
}
}
现在,我习惯了Java的工作,但我不明白为什么我得到一个未定义的变量($ pageTitle)错误。包含的文件需要能够访问该变量。我知道它会很简单,但我实际上还没有找到原因。 我需要做些什么来包括看到这个变量?
答案 0 :(得分:5)
包含也必须使用$this->pageTitle
。实际上,include
使它们成为方法体的一部分。
答案 1 :(得分:3)
包含的文件与您的对象位于同一范围内。所以你需要打电话:
$this->pageTitle
答案 2 :(得分:1)
如果您不想完成整个 $ this-> ,您可以执行以下操作...提取功能会将数组$ this->数据提取到名称各自与每个项目的键/索引相对应的变量。所以现在你可以做 echo $ pageTitle;
class Template{
public $data = Array();
public function __construct($pageTitle){
$this->data['pageTitle'] = $pageTitle;
}
public function display(){
extract($this->data);
include "/includes/head.php";
include "/includes/body.php";
}
}
答案 3 :(得分:0)
PHP的范围与java略有不同。 根据您的具体情况,您需要
$this->pageTitle
要访问在类外声明的变量,您需要将其设为全局
global $myVar;