При интерполяции элементов массива с строковыми индексами PHP (5.3.3, Win32) можно ожидать следующее поведение:
$ha = array('key1' => 'Hello to me');
print $ha['key1']; # correct (usual way)
print $ha[key1]; # Warning, works (use of undefined constant)
print "He said {$ha['key1']}"; # correct (usual way)
print "He said {$ha[key1]}"; # Warning, works (use of undefined constant)
print "He said $ha['key1']"; # Error, unexpected T_ENCAPSED_AND_WHITESPACE
print "He said $ha[ key1 ]"; # Error, unexpected T_ENCAPSED_AND_WHITESPACE
print "He said $ha[key1]"; # !! correct (How Comes?)
Инертно, последняя строка кажется правильным PHP-кодом. Любые объяснения? Можно ли доверять этой функции?
Изменить: точка публикации теперь установлена в жирным шрифтом, чтобы уменьшить недоразумения.