EOD没有结束?

时间:2010-10-20 15:28:48

标签: php

alt text

<?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;
    }
}




?>

3 个答案:

答案 0 :(得分:12)

EOD;必须在行的最开始..没有空格或其前的任何东西

手册中的引用:

  

警告
  值得注意的是非常重要   关闭的那一行   标识符不得包含其他内容   字符,除了可能的a   分号(;)。这尤其意味着   标识符可能不是   缩进,可能没有   在之前或之后的空格或制表符   分号。这也很重要   意识到第一个角色   在结束标识符之前必须   由本地定义的换行符   操作系统。这是UNIX上的\ n   系统,包括Mac OS X.   关闭分隔符(可能跟随   必须遵循分号   通过换行符。

     

如果此规则被破坏并结束   标识符不是“干净”,它不会   被视为结束标识符,   PHP将继续寻找一个。   如果没有正确的结算标识符   在当前结束之前发现   文件,将导致解析错误   最后一行。

答案 1 :(得分:4)

您不应缩进heredoc标记,不能使用前导空格或制表符识别它。

答案 2 :(得分:1)