PHP: новая переменная из строки, объединенная с переменной (variable-variable)
У меня есть основная проблема php, которую я не смог решить, и я также хотел бы понять ПОЧЕМУ!
$upperValueCB = 10;
$passNodeMatrixSource = 'CB';
$topValue= '$upperValue'.$passNodeMatrixSource;
echo $topValue;
OUTPUT $ upperValueCB
но я хочу OUTPUT в качестве значения переменной 10.
Как я могу заставить PHP читать фразу $dollar как переменную, а не строку?
4 ответа
Решение
$varName = 'upperValue' . $passNodeMatrixSource;
$topValue = $$varName;
Этот маленький пример может проиллюстрировать, что вы собираетесь делать:
<?php
$a = 'b';
$b = 10;
echo ${$a}; // will output 10
Так что вам придется изменить свой пример на:
$upperValueCB = 10;
$passNodeMatrixSource = 'CB';
$topValue= 'upperValue'.$passNodeMatrixSource;
echo ${$topValue}; // will output 10
Вы можете сделать это следующим образом:
$upperValueCB = 10;
$passNodeMatrixSource = 'CB';
$topValue= ${'upperValue'.$passNodeMatrixSource};
echo $topValue;
Так как upperValueCB
это имя переменной, если вы хотите, чтобы PHP понимал, какую переменную использовать, вы должны указать имя переменной.
Для этого вы можете использовать статический способ, как $upperValueCB
или используя строку вроде этого: ${'upperValueCB'}
или используя третью переменную, содержащую имя переменной $var = 'upperValueCB'; $$var;
$upperValueCB = 10;
$passNodeMatrixSource = 'CB';
$topValue= 'upperValue'.$passNodeMatrixSource;
echo ${$topValue};