2

私はphpの基本を使い始めていますが、コードと文字列を混在させる方法を理解するのに問題があります。

文字列ブロックを印刷するための優れた便利なスタイルを見つけましたが、名前がわからず、例を見つけることができません。

以下のコードはエラーを返します:
解析エラー: 構文エラー、予期しない T_ENCAPSED_AND_WHITESPACE、120 行目の /web/htdocs/food/user/index.php の T_STRING または T_VARIABLE または T_NUM_STRING を期待しています

<?php   
$html_str = <<<STR
    <li><img alt="hello" src="$path_images/pencil.png"/><a title="hello" href="$path_pages/$page/action">Details</a></li>

STR;
print $html_str;
?>

誰かが私が間違っている場所とこの構文スタイルの名前を見つけるのを手伝ってもらえますか?

ありがとうv

4

2 に答える 2

4

問題が見つかりました!
私が投稿した例では、エラーを返すことはできません:

作業コード

<?php
$str = <<<STRING
hello! this is a working string<br/>
and i can do too many things with heredoc syntax!
STRING;

print $str;
?>

動作しないコード

<?php
     $str = <<<STRING
     syntax error!<br/>
     syntax error!<br/>
     why?
     STRING;

     print $str;
?>

問題は、終了タグSTRING の前のタブです。これらはタグの一部と見なされるため、終了タグは「STRING;」と解釈されません。しかし「STRING;」、それが機能しない理由です。

他の誰かに役立つことを願っています。

于 2009-11-20T14:21:32.997 に答える
1

構文の名前は、HEREDOC 文字列または「ヒア ドキュメント」です。

ただし、サーバーでコードを実行すると、トークンエラーは発生しません。たぶんあなたのエラーは実際にはどこか別の場所にありますか?

于 2009-11-10T15:14:31.350 に答える