我是 PHP 新手,目前正在阅读《PHP 绝对初学者》一书。书中目前正在教授有关模板化和使用 StdClass() 对象以避免命名冲突的内容。
我有一个名为 page.php 的模板文件和一个名为 index.php 的主页文件。
我的page.php代码
<?php return "<!DOCTYPE html> <html> <head> <title>$pageData->title</title> <meta http-equiv='Content-Type' content='text/html;charset=utf-8'/> </head> <body> $pageData->$content </body> </html>";
我的index.php
<?php //this correctly outputs any errors error_reporting( E_ALL ); ini_set("display_errors", 1); $pageData = new stdClass(); $pageData->title = "Test title"; $pageData->content = "<h1>Hello World</h1>"; $page = include_once "templates/page.php"; echo $page;
我收到的错误是
警告:第 5 行 C:\xampp\htdocs\ch2\templates\page.php 中未定义变量 $title
警告:第 9 行 C:\xampp\htdocs\ch2\templates\page.php 中未定义变量 $content
我不明白这一点,因为这正是本书所教的内容,如果有任何帮助,我们将不胜感激,如果有更好的方法来使用模板,请记住我是初学者,所以请保持简单!
你的 page.php 看起来有点奇怪。
return
不是我在打印 html 时使用的东西。另外,您在 php 标记中使用 php 和 html,这是无法工作的。试试这个:你的index.php中不需要
echo $page
,让page.php来做这件事。/编辑:第 9 行也有一个拼写错误:
$pageData->$content;
我已更正。