2012-03-16 3 views
0

Есть ли способ динамически изменить значение переменной внутри строки?Динамическая переменная внутри строки à

Что я судимый:

$World= "World"; 
$world = &$World; 
$tmp = "Hello ".$world." ===="; 

$World= "Tada!"; 

echo $tmp; 

Что вторит: Hello World ==== , что я хочу, чтобы это эхо: Hello Tada! ====

+0

Могу ли я спросить, что вы» в конце концов пытаемся выполнить? –

+0

Исправьте тупую ошибку ... (версия KISS), допустим, у меня есть функция, которая эхо-образ html, и я хочу, чтобы она динамически менялась, но я не могу переместить блок внутри функции или после функции. –

+0

@Charles: Итак, вам нужна система шаблонов. –

ответ

5

Есть ли способ для динамического изменения значения переменного внутри строк ?

No.

Там больше нет «переменная внутри строки» после того, как эта линия получила выполненной, но только регулярная строка.

вы можете использовать некоторые заполнитель вместо интерполирования переменной

$tmp = "Hello %s ===="; 
$World = "World"; 
echo sprintf($tmp,$World); 
$World = "Tada!"; 
echo sprintf($tmp,$World); 
+0

это распространено? – joakimdahlstrom

+1

Да, это довольно часто. –

+0

Спасибо, это сработало! (будет принимать, когда я смогу (4 минуты)) –

0

Или вы можете использовать str_replace

$tml = "Hellow world!!!" 
echo (str_replace("world","TADA",$tmp)); 
+0

Не является надежной методологией. –

+0

привет, извините, что опоздал на мой ответ, вот где это проблематично. если я получу «Hello world from world!», он станет «Hello TADA от TADA». –

-2

Вы можете использовать eval():

$tmp = '$tmp = "Hello $world";'; 
$World= "Tada!"; 
eval($tmp); 
echo $tmp; 
+0

привет, ваш ответ будет работать. но использование eval - очень плохая практика. много проблем безопасности. –

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