<?php
// Page class
class Page {
// Declare a class member variable
var $page;
var $title;
var $year;
var $copyright;
// The Constructor function
function Page($title, $year, $copyright){
// Assign values to member variables
$this->page = '';
$this->title = $title;
$this->year = $year;
$this->copyright = $copyright;
// Call the addHeader() method
$this->addHeader();
}
// Generates the top of the page
function addHeader(){
$this->page .= <<<EOD
<html>
<head>
<title>$this->title</title>
</head>
<body>
<h1 align="center">$this->title</h1>
</body>
EOD;
}
}
?>
答案 0 :(得分:12)
EOD;必须在行的最开始..没有空格或其前的任何东西
手册中的引用:
警告
值得注意的是非常重要 关闭的那一行 标识符不得包含其他内容 字符,除了可能的a 分号(;)。这尤其意味着 标识符可能不是 缩进,可能没有 在之前或之后的空格或制表符 分号。这也很重要 意识到第一个角色 在结束标识符之前必须 由本地定义的换行符 操作系统。这是UNIX上的\ n 系统,包括Mac OS X. 关闭分隔符(可能跟随 必须遵循分号 通过换行符。如果此规则被破坏并结束 标识符不是“干净”,它不会 被视为结束标识符, PHP将继续寻找一个。 如果没有正确的结算标识符 在当前结束之前发现 文件,将导致解析错误 最后一行。
答案 1 :(得分:4)
您不应缩进heredoc标记,不能使用前导空格或制表符识别它。
答案 2 :(得分:1)
很难说实际问题,但请看一下heredoc docs:http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc