$field = 'mailbox';
$default_{$field} = 'abc';
print($default_{'mailbox'});//выводит abc
print($default_mailbox);//Ничего не выводит
P.S. Я уже "вспомнил" про массивы. Но что за такое происходит с именами переменных?
$field = 'mailbox';
$default_{$field} = 'abc';
print($default_{'mailbox'});//выводит abc
print($default_mailbox);//Ничего не выводит
P.S. Я уже "вспомнил" про массивы. Но что за такое происходит с именами переменных?
Может быть такой вариант Вам подойдет:
$field = 'mailbox';
${'default_'.$field} = 'abc';
echo $default_mailbox;
Но массивы действительно лучше. И без крайней необходимости пользоваться динамическими переменными не следует.
$default['mailbox'];
однако вопрос состоял именно почему нельзя часть имени представить так как представил я. Что происходит?
– knes Sep 05 '12 at 14:48${'default_'.'mailbox'}
превращается в $default_mailbox ?
Глядя на эти 2 примера (от @knes и @Barton) кажется, что просто в интерпретаторе какая-то ошибка при разборе и построении имени переменной.
– avp Sep 05 '12 at 19:01