0

以下のコードを見てください。

<?php
//The array stores the nodes of a blog entry
$entry = array('title' => "My First Blog Entry",
        'author' => "daNullSet",
        'date' => "August 10, 2012",
        'body' => "This is the bosy of the blog");
echo "The title of the blog entry is ".{$entry['title']};
?>

次のエラーが表示されます。

解析エラー: 構文エラー、7 行目の C:\xampp\htdocs\php-blog\simple-blog\array-test.php の予期しない '{'

上記のコードの echo ステートメントで複雑な構文を導入している中かっこを削除すると、エラーはなくなります。上記のコードのデバッグを手伝ってください。ありがとうございました!

4

5 に答える 5

4

中括弧を削除すると、正常に機能します。この動作はバグではなく、構文が正しくありません。つまり、複雑な変数補間に中括弧を使用すると、外側ではなく、二重引用符内またはヒアドキュメント内で機能します。

より詳細な説明:

これを使って:

echo "The title of the blog entry is ".$entry['title'];

複雑な変数 (および中括弧内の式の補間) は、正確な補間が必要な場合や、あいまいさが発生する可能性がある場合に、二重引用符で囲まれた文字列またはヒアドキュメント内で特に機能します。これは明確な構文の一部であるため、あいまいさが生じません。つまり、曖昧さを解消する必要はありません。

複雑な変数の詳細については、http: //php.net/manual/en/language.types.string.phpをご覧ください。

配列値を二重引用符で囲んでいた場合は、中括弧を使用して正しい変数補間を行うことができます。ただし、これは問題なく動作し、ほとんどの人はこれを完全に読み、何をしているのかを理解できるはずです。

于 2012-08-10T06:27:43.487 に答える
1

正しい使用方法}は次のとおりです。

echo "The title of the blog entry is  {$entry['title']}";

次のように使用することもできます。

echo "The title of the blog entry is " . $entry['title'];
于 2012-08-10T06:31:01.060 に答える
1

あなたは {間違った方法を使用しています

どちらかを使用

 echo "The title of the blog entry is ".$entry['title'];

また

 echo "The title of the blog entry is ". $entry{title};

文字列を連結する必要があります。あなたは中にすべてを書くことができます""

  echo "The title of the blog entry is $entry{title}";

ワーキングデモ

読んだComplex (curly) syntax

于 2012-08-10T06:28:06.527 に答える
1
echo "The title of the blog entry is " . $entry['title'];
于 2012-08-10T06:29:10.697 に答える
1

使用したい正しい構文は次のようなものだと思います

echo "The title of the blog entry is {$entry['title']}"; 
于 2012-08-10T06:30:39.620 に答える