8
$field = 'mailbox';
$default_{$field} = 'abc';

print($default_{'mailbox'});//выводит abc
print($default_mailbox);//Ничего не выводит

P.S. Я уже "вспомнил" про массивы. Но что за такое происходит с именами переменных?

knes
  • 25,879

1 Answers1

16

Может быть такой вариант Вам подойдет:

$field = 'mailbox';
${'default_'.$field} = 'abc';
echo $default_mailbox;

Но массивы действительно лучше. И без крайней необходимости пользоваться динамическими переменными не следует.

iurii_n
  • 3,886
  • Подойдет вполне. Хотя я в итоге использовал просто массив(см вопрос).
    $default['mailbox'];
    
    

    однако вопрос состоял именно почему нельзя часть имени представить так как представил я. Что происходит?

    – knes Sep 05 '12 at 14:48
  • Нельзя потому-что разработчики ПоХаПе не предоставили такой возможности (кэп) –  Sep 05 '12 at 16:49
  • Интересно, а
    ${'default_'.'mailbox'} 
    
    

    превращается в $default_mailbox ?

    Глядя на эти 2 примера (от @knes и @Barton) кажется, что просто в интерпретаторе какая-то ошибка при разборе и построении имени переменной.

    – avp Sep 05 '12 at 19:01