Как мне известно, если переменные PHP повторяются внутри двойных кавычек, они печатаются на экране.Почему значения элементов массива не печатаются и не генерируют уведомление при двойном кавычке?
Например:
<!DOCTYPE html>
<html>
<body>
<?php
$jumbo = "JumboJet";
echo "$jumbo";
?>
</body>
</html>
Кроме того, я попытался напечатать элементы массива из многомерного массива в двойных кавычках, но вместо того, чтобы печатать элементы массива, что генерирует уведомление, как «Примечание: Массив для преобразования строки в C: \ XAMPP \ HTDOCS \ php_playground \ demo.php в строке 17" в следующем коде:
<!DOCTYPE html>
<html>
<body>
<?php
$cars = array(
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
for ($row = 0; $row < 4; $row++) {
echo "<p><b>Row number $row</b></p>";
echo "<ul>";
for ($col = 0; $col < 3; $col++) {
echo "<li>$cars[$row][$col]</li>";
}
echo "</ul>";
}
?>
</body>
</html>
Принимая во внимание, если я пытаюсь с кодом echo "<li>".$cars[$row][$col]."</li>";
вместо кода echo "<li>$cars[$row][$col]</li>";
Я получаю желаемый результат без какого-либо уведомления.
Почему это происходит? Почему то же самое, что работает для нормальной переменной, не может работать с элементами массива?
Кто-то может мне помочь в этом отношении?
Нужный выход выше кода, как показано ниже:
добавить фигурные скобки - 'эхо"
@Sean: Спасибо за вашу помощь, и это сработало для меня, но не могли бы вы объяснить мне, почему это то же самое вещь, которая работает для нормальной переменной, не может работать с элементами массива? Почему есть необходимость вставить фигурные скобки вокруг? Спасибо, ожидая вашего ответа !!! – user2839497
Из http://php.net/manual/en/language.types.string.php#language.types.string.simple -> * Если встречается знак доллара ($), синтаксический анализатор будет с жадностью принимать столько жетонов возможно, чтобы сформировать допустимое имя переменной. *. Поскольку '$ cars' является допустимым именем переменной, синтаксический анализатор останавливается там, но поскольку он является массивом, он дает вам выражение« Уведомление: массив для преобразования строки ... ». Следующая строка состояний -> * Включение имени переменной в фигурные скобки, чтобы явно указать конец имени. * Вот почему для значений массива вам нужно обернуть фигурные скобки, чтобы парсер получал '$ cars [$ row] [$ col] ', а не только' $ cars' – Sean