2012-03-16 10 views
0

文字列内の変数値を動的に変更する方法はありますか?文字列内の動的変数

は私がしようと試みているもの:

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

$World= "Tada!"; 

echo $tmp; 

それはエコー何:Hello World ==== 私はそれをエコーし​​たいもの:

+0

私が「何を求めることができます最終的に達成しようとしていますか? –

+0

愚かな間違いを修正する...(KISSバージョン)私はhtmlのパターンをエコーする関数を持っていて、それを動的に変更したいとしますが、関数内でもブロック内でもブロックを移動することはできません。 –

+0

@Charles:だから、いくつかのテンプレートシステムが必要です。 –

答えて

5

Hello Tada! ====が動的に文字列の内部変数の値を変更する方法があります?

これ以上この行が実行されてしまった後に、「文字列の内部変数」が、ちょうど通常の文字列はありません。

あなたの代わりに変数

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

はこの共通点ですか? – joakimdahlstrom

+1

はい、それはかなり一般的です。 –

+0

ありがとう、それは働いた! (私が(4分)できる場合に受け入れます) –

0

それとも、あなたがeval()を使用することができますstr_replace

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

絶対方法ではありません。 –

+0

こんにちは、私の返事に遅れて申し訳ありませんが、ここに問題があります。もし私が '世界からのこんにちは世界! 'を取得すれば、それは' TADAからのHello TADA'になるでしょう。 –

-2

を使用することを補間するいくつかのプレースホルダを使用することがあります。

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

こんにちは、あなたの答えはうまくいくでしょう。しかしevalを使うことは本当に悪いことです。セキュリティ問題の多く。 –