'意外的T_VARIABLE'(推定与HEREDOC有关)

时间:2016-06-13 00:34:01

标签: php

我有以下的PHP,它给了我一个:

  

解析错误:语法错误,第77行/var/www/html/blog/index.php中意外的'$ author'(T_VARIABLE)

>nuget
NuGet Version: 3.4.4.1321

我尝试将引用的行注释为快速“修复”,但随后错误就会移动。

使用

  

// public $ author_url ='/ user /'。 $作者;

我明白了:

  

解析错误:语法错误,意外的'$ post_boilerplate'(T_VARIABLE),期待第79行/var/www/html/blog/index.php中的函数(T_FUNCTION)

注释出HEREDOC也有“帮助”,因为包含的页面生成了,显然虽然有关于缺少变量声明的错误,但显然这实际上并不是解决方案。

任何人都可以解释出错的原因吗?

1 个答案:

答案 0 :(得分:1)

您无法以这种方式初始化类变量。

一种方法是定义常量

define('AUTHOR',$author);

//...

public $author_url = '/user/'. AUTHOR;

更好的方法是初始化构造函数中的值。

function __construct() {
  $this->post_boilerplate = "
  <div class='blog-post'>
    <h2 class='blog-post-title'> ".$this->title."</h2>
    <p class='blog-post-meta'>".$this->timestamp." by <a href='".$this->author_url."'>".$this->author."</a></p>

    <p>Blah, blah, blah...</p>
  </div><!-- /.blog-post -->
  ";
}