首页  >  问答  >  正文

如何正确使用PHP模板

我是 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

我不明白这一点,因为这正是本书所教的内容,如果有任何帮助,我们将不胜感激,如果有更好的方法来使用模板,请记住我是初学者,所以请保持简单!

P粉738346380P粉738346380219 天前261

全部回复(1)我来回复

  • P粉129168206

    P粉1291682062024-02-18 13:04:26

    你的 page.php 看起来有点奇怪。 return 不是我在打印 html 时使用的东西。另外,您在 php 标记中使用 php 和 html,这是无法工作的。试试这个:

    
    
      
    <?php echo $pageData->title; ?>
    
    
    
    content; ?>
    
    

    你的index.php中不需要echo $page,让page.php来做这件事。

    /编辑:第 9 行也有一个拼写错误:$pageData->$content; 我已更正。

    回复
    0
  • 取消回复