Переменная в строке

Я знаю, что мы можем использовать переменную внутри строки. Например:

<?php
    $name = "pink panther";
    $message = "Hello, Im $name"; // 1
    $other_message = "Hello, Im {$name}"; // 2
?>

Оба $ message и $ other_message в порядке. Это так часто. Однако я вижу другой синтаксис этой проблемы.

$third_way = "Hello, Im ${name}"; // 3

Третий способ все еще в порядке (я использую PHP версии 7). Мне нравится этот синтаксис, потому что он похож на шаблон javascript. Но я никогда не видел, чтобы кто-то так использовал. Есть ли проблемы, когда я использую этот синтаксис? Спасибо за комментарий!

извините, я понятия не имею, какой вопрос здесь на самом деле

user10226920 26.10.2018 07:34

Я предпочитаю третий синтаксис другим, но я видел это на php.net или где-то еще.

hai le 26.10.2018 07:44
php.net/manual/en/…
misorude 26.10.2018 09:24
2
3
322
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Эта вещь "{$var}" называется сложным синтаксисом в строках с двойными кавычками PHP, потому что с ее помощью вы можете, например, получить доступ к значениям многомерных массивов для объектов как с числовыми, так и с строковыми индексами и, возможно, использовать даже одинарные кавычки для доступа к индексу. Пример:

$result = "{$var->val[3]->arr['idx'][3]}";

"${var}", с другой стороны, попадает в категорию простого синтаксиса и (на мой взгляд) в первую очередь полезен для таких случаев:

$result = "${var}s";

Я бы не стал применять фигурные скобки по трем причинам:

  • Мне легче читать "hi $name", чем "hi ${name}"
  • Они менее распространены
  • В них нет необходимости, поэтому, когда я читал этот код, я спрашивал себя на пару миллисекунд: «зачем он поставил фигурные скобки?»

Но решение остается за вами или за вашей командой. Узнайте больше об этом в Руководство по PHP.

здесь нет смысла использовать ${name} vs $name

user10226920 26.10.2018 08:49

@IdontDownVote Большинство примеров предпочитают $name, а не ${name}. Ответ на вопрос «Почему ${name} так редко используется?»: Потому что существует синтаксис $name.

steffen 26.10.2018 09:05

Другие вопросы по теме