我是 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;
我已修正。