Php herdoc要求{}打印多维数组值,但在普通数组上它不';T为什么?

Php herdoc要求{}打印多维数组值,但在普通数组上它不';T为什么?,php,arrays,multidimensional-array,heredoc,Php,Arrays,Multidimensional Array,Heredoc,在herdoc中写入和发布多维数组值时,需要{}。在普通阵列号上。下面是一个示例: $array = array('normal_key', 'normal_value'); $multidim = array(array('multi0_key', 'multi0_value'), array('multi1_key', 'multi1_value') ); $text1 =<<<EOBOD

在herdoc中写入和发布多维数组值时,需要{}。在普通阵列号上。下面是一个示例:

$array = array('normal_key', 'normal_value');
$multidim = array(array('multi0_key', 'multi0_value'),
                  array('multi1_key', 'multi1_value')
               );          
$text1 =<<<EOBODY
    Hello World!<br />
    $array[0] $array[1]<br />
    $multidim[0][0] $multidim[0][1]<br />
    $multidim[1][0] $multidim[1][1]
EOBODY;

echo $text1;
//This prints:
/* Hello World!
*  normal_key normal_value
*  Array[0] Array[1]
*  Array[0] Array[1] */

$text2 =<<<EOBODY
    Hello World!<br />
    $array[0] $array[1]<br />
    {$multidim[0][0]} {$multidim[0][1]}<br />
    {$multidim[1][0]} {$multidim[1][1]}
EOBODY;

echo $text2;
//This prints:
/*  Hello World!
*   normal_key normal_value
*   multi0_key multi0_value
*   multi1_key multi1_value */
$array=array('normal_key','normal_value');
$multidim=array(数组('multi0\u key','multi0\u value'),
数组('multi1\u键'、'multi1\u值')
);          

$text1=这很正常。这是一个PHP解析器“bug”-在字符串中查找数组时并不贪婪:

$arr[1][2] = 'foo';
echo "$arr[1][2]";   non-greedy
echo $arr[1][2];  greedy, outputs 'foo'
被解析为

echo $arr[1], "[2]";
     ^^^^^^^--array
              ^^^^--string

output: Array[2]
在字符串上下文中回显数组将始终输出字面单词
array
,而不是数组的内容

使用
{}
符号强制PHP吸入整个数组引用:

echo "{$arr[1][2]}"; // outpus "foo";

“bug”既适用于正常的
带引号的字符串,也适用于HEREDOCs。

这是正常的。这是一个PHP解析器“bug”-在字符串中查找数组时并不贪婪:

$arr[1][2] = 'foo';
echo "$arr[1][2]";   non-greedy
echo $arr[1][2];  greedy, outputs 'foo'
被解析为

echo $arr[1], "[2]";
     ^^^^^^^--array
              ^^^^--string

output: Array[2]
在字符串上下文中回显数组将始终输出字面单词
array
,而不是数组的内容

使用
{}
符号强制PHP吸入整个数组引用:

echo "{$arr[1][2]}"; // outpus "foo";

“bug”既适用于正常的
带引号的字符串,也适用于HEREDOCs。

这是正常的。这是一个PHP解析器“bug”-在字符串中查找数组时并不贪婪:

$arr[1][2] = 'foo';
echo "$arr[1][2]";   non-greedy
echo $arr[1][2];  greedy, outputs 'foo'
被解析为

echo $arr[1], "[2]";
     ^^^^^^^--array
              ^^^^--string

output: Array[2]
在字符串上下文中回显数组将始终输出字面单词
array
,而不是数组的内容

使用
{}
符号强制PHP吸入整个数组引用:

echo "{$arr[1][2]}"; // outpus "foo";

“bug”既适用于正常的
带引号的字符串,也适用于HEREDOCs。

这是正常的。这是一个PHP解析器“bug”-在字符串中查找数组时并不贪婪:

$arr[1][2] = 'foo';
echo "$arr[1][2]";   non-greedy
echo $arr[1][2];  greedy, outputs 'foo'
被解析为

echo $arr[1], "[2]";
     ^^^^^^^--array
              ^^^^--string

output: Array[2]
在字符串上下文中回显数组将始终输出字面单词
array
,而不是数组的内容

使用
{}
符号强制PHP吸入整个数组引用:

echo "{$arr[1][2]}"; // outpus "foo";
“bug”同时适用于正常的
带引号的字符串和HEREDOCs