为什么我在访问字符串类型键下存在的数组值时遇到解析错误?

Why I'm getting parse error in accessing an array value present under the key of string type?

我试过以下代码:

<?php
  $juices = array("apple", "orange", "koolaid1" => "purple");

  // For below line of code I get tis error : Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)
  echo "He drank some $juices['koolaid1'] juice.".PHP_EOL;

  // For below line of code too I get tis error : Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)
  echo "He drank some $juices["koolaid1"] juice.".PHP_EOL;

  //Below line of code works fine. Prints He drank some purple juice. 
  echo "He drank some $juices[koolaid1] juice.".PHP_EOL;
?>

我的问题是因为我正在访问的密钥类型是 string 那么我必须将它放在单引号或双引号内才能访问它所包含的值。我在这里做同样的事情,但出现解析错误。为什么会这样?

另一方面,当我不在 string 类型的键周围使用单引号或双引号时,它工作正常,这真的非常令人惊讶。

由于 PHP 的这种 奇怪行为,我在这里完全感到困惑。请有人为我提供有用的帮助。

当您的数组变量已经在双引号中时 " 此时您不必添加任何引号来访问索引。你只需要直接写索引名称而不用任何引号。但是,如果您当时没有任何引号围绕数组,则必须添加引号以访问字符串索引。

echo "He drank some $juices[koolaid] juice.".PHP_EOL; //不需要引用

echo $juices['koolaid']; //这里需要引用