好的,我有一个 index.php:
<?php
require 'php/stdlib.php';
$site->page->render();
foreach($page as $var => $value) {
echo $var ." is ". $value." <br/>";
}
?>
站点和页面的 obj 创建位于 stdlib 文件中,并且显然正在工作,因为 -for each- 循环打印出来:
name is welcome
headers is inc/index_h.php
footers is inc/index_f.php
contents is inc/welcome.php
它表明对象已创建。我还做了一个 var 转储,结果正确,这里是 site---page---render:
public function render_page(){
$this->page->render();
}
这是页面---渲染:
public function render(){
include $this->headers;
include $this->contents;
include $this->footers;
}
但是脚本的结果如下:
未定义的变量:
并且
试图获取非对象的属性:两个错误都指向我在包含文件中用于页眉的 $page 对象:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><?php echo $page->name; ?></title>
<script src="/scripts/jquery.js"></script>
</head>
<body>
错误实际上是在 html 标题标签中打印出来的,而不是在屏幕上,这意味着我必须在浏览器上使用 View Source 才能看到它如何在使用包含时让 $page 对象可见 我通常很擅长自己找到答案但这件事让我难倒了两天。(我在寻找答案时学到了很多其他的东西,所以我想并不是所有的东西都丢失了)如果有人能帮助我,我将不胜感激。
可能应该添加页面和站点对象在 stdlib.php 中实例化,如下所示
$site = new csite();
site_ini($site);
$page = new cpage("welcome");
$site->setPage($page);