将变量传递给包含的文件

时间:2011-08-03 14:32:31

标签: php oop include

我有一个模板类,如下所示:

class Template{
public $pageTitle = "";
public function __construct($pageTitle){
    $this->pageTitle = $pageTitle;
}

public function display(){
    include "/includes/head.php";
    include "/includes/body.php";
}
}

现在,我习惯了Java的工作,但我不明白为什么我得到一个未定义的变量($ pageTitle)错误。包含的文件需要能够访问该变量。我知道它会很简单,但我实际上还没有找到原因。 我需要做些什么来包括看到这个变量?

4 个答案:

答案 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;