2012-05-27 21 views
1

Эти два двух «написания» эквивалентны? Просто интересуюсь.

+0

Как этот показатель рассчитывается? –

+0

http://meta.stackexchange.com/questions/16721/how-does-accept-rate-work – Wex

ответ

6

${var} из контекста может быть правильным или нет. Если он используется внутри строки, как "foo ${var} bar" - тогда это то же самое.

Если он используется прямо в коде, то ${var} неверен, и вместо этого следует использовать ${'var'}.

действительные случаи для использования ${...} являются:

  1. Внутри строки в таких случаях, как "ab${cd}e" - когда все буквы идут без пробелов, "${a['b']}" - когда вы используете его с массивами

  2. Когда ты хотите сгруппировать имя переменной динамически: ${'a_' . $i}

+2

Также допустим $ {'va'. 'R'}. –

+0

@Mihai Stancu: да, это то, что я добавляю дополнительно ;-) – zerkms

1

В значительной степени , Единственное различие заключается в том, что вы можете ввести код для анализа в фигурных скобках, чтобы получить имена переменных.

Ex.

${'t'.'e'.'s'.'t'} = 'test'; // is the same as $test = 'test'; 
${substr('testaaa',0,4)} = 'test'; // the same 

Вы даже можете сделать что-то вроде:

${ 'a' == 'b' ? 'Foo' : 'test' } = 'test'; //the same 

Это, по существу, такой же, как:

$var_name = substr('testaaa',0,4); 
$$var_name = 'test'; 
+1

Важное примечание: «вы можете ввести код, который нужно разобрать между фигурными фигурными скобками, чтобы получить« переменные »имен переменных» --- это не 100% верный. Код должен быть ** выражением **. Вы не можете просто поставить какой-то произвольный код – zerkms

+0

Да, это была ошибка. Спасибо, что освободили. –

Смежные вопросы