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

删除花括号,它会正常工作。此行为不是错误,而是您的语法不正确。简而言之,使用花括号进行复杂变量插值在双引号或heredoc 中有效,而不是在外部。

更详细的解释:

用这个:

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

复杂变量(以及花括号内的表达式插值)特别适用于双引号字符串或 heredocs,其中需要正确的插值,并且可能出现歧义。这是一段干净的语法,因此不会引起歧义,这意味着不需要消除歧义。

在此处查看有关复杂变量的更多信息: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};

即使您需要连接字符串。你可以在里面写一切""

  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 回答
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 回答