我使用下面指定的模板引擎。虽然一切运行良好,但当我在主页面中包含变量/对象(例如index.php)时,例如(main.php),无法访问该对象。
我之所以这样做是因为在我的模板文件中,我想检查用户是否已登录,并分别显示不同的标题。
但是当我尝试打印出一个值时,我得到了错误"注意:试图获取非对象的属性"。
用户帐户和模板类都是独立的。
在我的模板文件中:
<html>
<body>
<?php if ($user->isLoggedIn()) { ?>
<HEADER 1>
<?php } else { ?>
<HEADER 1>
<?php } ?>
</body>
</html>
我的模板引擎:
class Template
{
protected $template;
protected $variables = array();
public function __construct($template)
{
$this->template = $template;
}
public function __get($key)
{
return $this->variables[$key];
}
public function __set($key, $value)
{
$this->variables[$key] = $value;
}
public function __toString()
{
extract($this->variables);
chdir(dirname($this->template));
ob_start();
include basename($this->template);
return ob_get_clean();
}
}
的index.php
require 'global.php';
require 'templateEngine.php';
$user = new Account(); // the $user object works when I print it on the same page, but not when it's in the template file.
$view = new Template("path/to/template.php");
$view->title = "Hello world!";
$view->description = "This is a ridiculously simple template";
echo $view;
我该怎么做才能让我的模板文件可以访问从index.php生成的$ user对象?
注意:模板引擎使用&#39;包含&#39;因此标题 - 但我可能错了。
谢谢!