2013-12-19 9 views
-2

Это должно быть просто для большинства, как добавить переменную в другую переменную?Как добавить переменную в другую переменную?

эта переменная $objResult["price"] имеет значение 5:

echo $objResult["price"]; //it shows `5` 

Я хочу сделать что-то вроде:

$newVariable = $objResult["price"]; 
echo $newVariable; //nothing happens 

Это не работает для меня. echo $newVariable; ничего не показывает.

но этот способ не работает.

Я пробовал:

$newVariable = echo $objResult["price"]; 
$newVariable = print $objResult["price"]; 
$newVariable = echo ${$objResult["price"]}; 

, но без удачи! Может ли кто-нибудь помочь?


Для аннотация:

Если я:

echo $objResult["price"]; 

Это показывает

Если я сделать:

$newVariable = $objResult["price"]; 
echo $newVariable; 

ничего га ppens.

+0

Это ужасный вопрос. Прежде всего, вы говорите '$ newVariable = $ objResult [" price "];' не работает, но вы ошибаетесь. Если вы хотите, чтобы вы получили переменную с именем $ 5 из этого ... вы хотите переменные переменные, и вы должны использовать '$ {$ objResult ['price']} = 'ваше значение', как в вашем последнем примере, но без эха и наоборот. –

+2

@scrowler За исключением $ 5 не является допустимой переменной PHP :) – Jessica

+0

@Jessica, правильно - однако всегда есть обходное решение: https://eval.in/81263 –

ответ

2

Очень близко!

$newVariable = $objResult["price"]; 
echo $newVariable; 
+0

это не работает для меня: если я делаю echo $ objResult ["price"]; он показывает 5, но если я сделаю так, как вы отправили, то он ничего не показывает – AndrewS

+2

@AndrewS, тогда вы делаете что-то неправильно. Это очень простой синтаксис PHP ... –

+0

Я знаю, что это выглядит странно, но это действительно глупая проблема ... Я пробовал то же самое думать о 20 раз, и это не работает !!! Я должен так работать, я пробовал это в первый раз, но не работал. – AndrewS

0

Ваша первая попытка (приведенная ниже) верна для присвоения значения другой переменной.

$newVariable = $objResult["price"]; 

Теперь, если вы хотите напечатать это значение, вы можете сделать:

echo $newVariable; 

В противном случае, если вы столкнулись с какой-либо другой вопрос, пожалуйста, обновите ваш вопрос :)

-1

Вы сказали что это не сработало:

$newVariable = $objResult["price"]; 
echo $newVariable; 

Но это вы приняли ответ. Если кто-то еще приходит с подобной проблемой, я покажу, как это может не работать. Я не говорю, что это случай OP, Я не волнуюсь, знаю, что такое ОП.


Если значение $objResult["price"] это не является строкой, то при вызове echo на нем может быть вызовом __toString() на нем. Это документировано beviour, описанное в Magic Methods at php.net.

Таким образом, когда вы вызываете echo на объект, он автоматически преобразует его в строку.

В этом случае код:

echo $objResult["price"]; 

эквивалентно

echo $objResult["price"].__toString(); 

С другой стороны, если у вас есть код:

$newVariable = $objResult["price"]; 
echo $newVariable; 

Это будет эквивалентно следующему :

$newVariable = $objResult["price"]; 
echo $newVariable.__toString(); 

Если первые работы и второй нет, значит, у вас есть нечетная реализация __toString(). Вы можете устранить проблему, выполнив следующие действия:

$newVariable = $objResult["price"].__toString(); 
echo $newVariable; 
Смежные вопросы