EOD没有结束?

Jon*_*han 4 php

替代文字

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




?>
Run Code Online (Sandbox Code Playgroud)

Mar*_*ker 12

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

从手册中引用:

警告
请注意,具有结束标识符的行必须不包含其他字符,除了可能是分号(;).这尤其意味着标识符可能没有缩进,并且在分号之前或之后可能没有任何空格或制表符.同样重要的是要认识到结束标识符之前的第一个字符必须是本地操作系统定义的换行符.这是在UNIX系统上的\n,包括Mac OS X.结束分隔符(可能后面跟一个分号)后面也必须跟一个换行符.

如果此规则被破坏且结束标识符不是"干净",则不会将其视为结束标识符,PHP将继续查找.如果在当前文件结束之前未找到正确的结束标识符,则将在最后一行产生解析错误.