2016-06-13 13 views
-1

私が私に与えているPHPの以下の部分を、持っています修正する 'が、エラーはちょうど動き回る。「予期しないT_VARIABLE」

私が手

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

Parse error: syntax error, unexpected '$post_boilerplate' (T_VARIABLE), expecting function (T_FUNCTION) in /var/www/html/blog/index.php on line 79

はヒアドキュメントをコメントアウトあまりにも含むページが生成されますように明らかに変数宣言が欠落に関するエラーが発生しているとはいえ、「助け」が、明らかにそれは実際に解決策ではありません。

誰が何が間違っているのか光を当てはめることはできますか?

+0

Heredocテキストはインデントしないでください。 –

+0

私が読んだことから、sychはhttp://stackoverflow.com/questions/4068556/php-using-proper-indentation-with-heredocsと書いてあります。私はそれが閉じられた区切り文字だと考えています。自体。とにかく、インデントを削除しても問題は解決されませんでした。私は引用した最初のエラーをまだ受けています。 –

答えて

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 --> 
    "; 
} 
+0

これはまだ一定のスカラー式です。これはPHP 5.5までの構文エラーのままです。 – mario

+0

@marioはチップをありがとう!私はそれを知らなかった。 OPは少なくとも現在のものでなければなりません。あるいは '$ title'でエラーを受け取っていたでしょう –

+0

本当にheredocを見つけたでしょうか?だから、コンストラクタのアプローチは本当にここの唯一のオプションです。 – mario

関連する問題