Из чего проистекает это функционирование в PHP, когда используется стоимость array внутри двойных кавычек и вне их?

Ввиду того, что много людей пишут код перемешивая блоки HTML/PHP (что должно бы быть запрещено..., - самое неразборчивое, что я увидел), всегда я рекомендую писать единственный блок, где прилагается единственная переменная, окруженная двойными кавычками.

В случае arrays, код в этих случаях может писаться так:

$html="Este es el valor de clave1: $mArray[clave1]";
$html.="... más cosas";
$html.=" y este es el valor de clave2: $mArray[clave2]";
echo $html;

Окончательно, я могу в цепи, окруженной двойными кавычками использовать что-то как $mArray[clave], но если я это делаю прямо, функционируй, но брось Notice.

Доказательство, которое функционирует чисто:

$mArray=array("clave"=>"valor");
echo "El valor es: $mArray[clave]";

Выход:

El valor es: valor

Доказательство, которое функционирует, но бросает Notice:

$mArray=array("clave"=>"valor");
echo "El valor es: ".$mArray[clave];

Выход:

PHP Notice:  Use of undefined constant clave - assumed 'clave' in ...
El valor es: valor

Кто-то знает, из чего проистекает это поведение в PHP? Во втором случае покажи информацию, но брось Notice. Он не был бы должен бросать Notice также в первом случае, так как я использую clave просто так? Почему он не бросает Notice?

16
задан 25.04.2019, 15:19
0 ответов