爲了執行更少的數據庫查詢和清晰的代碼,我希望在字符串中包含一個尚未定義的變量。稍後在頁面中,變量將被聲明並打印和評估字符串。我該怎麼做呢?如何在字符串中包含尚未定義的變量? PHP
$str="This $variable is delicious";
$array=array("Apple","Pineapple","Strawberry");
foreach($array as $variable)
{
print "$str";
}
爲了執行更少的數據庫查詢和清晰的代碼,我希望在字符串中包含一個尚未定義的變量。稍後在頁面中,變量將被聲明並打印和評估字符串。我該怎麼做呢?如何在字符串中包含尚未定義的變量? PHP
$str="This $variable is delicious";
$array=array("Apple","Pineapple","Strawberry");
foreach($array as $variable)
{
print "$str";
}
$str='This $variable is delicious'; // so no variable interpolation is performed
$array=array("Apple","Pineapple","Strawberry");
foreach($array as $variable)
{
// Warning! This is a very bad idea!
// Using eval or system might create vulnerabilities!
eval('$str="' . $str . '";');
print $str;
}
這確實是一個壞主意。雖然不值得下調,因爲答案中指出這是一個壞主意。 – NullUserException 2010-09-02 05:42:53
因此它在列表中說.. – 2010-09-02 05:45:10
使用str_replace
。
例如:
$str = "This is [VARIABLE] is delicious";
$array = array("Apple", "Pineapple", "Strawberry");
foreach($array as $variable)
{
print str_replace('[VARIABLE]', $variable, $str);
}
爲什麼你不只是做:
$array=array("Apple","Pineapple","Strawberry");
foreach($array as $variable) {
print "This $variable is delicious";
}
這將工作。但這不是我正在使用的實際代碼。我只是用它來說明這個例子。 – matt 2010-09-02 05:55:54
@matt這是你的壞 – 2010-09-02 06:04:06
你可能是在做錯誤的方式。
學習使用模板,你永遠不會需要這種奇怪的東西。
只需將您的代碼分爲兩個部分:
你會發現,所有的代碼變得非常整潔,可重複使用的
OP可能會使用這個爲i8n – NullUserException 2010-09-02 05:51:27
@Null好拍攝。我應該想到它。 – 2010-09-02 06:00:39
+2。 。 。 。 。 。 。 – 2010-09-02 05:53:31
這是完美的。非常感謝! – matt 2010-09-02 05:54:34
或者sprintf()如果你實際上不想回顯它。 +1 – Mchl 2010-09-02 05:55:09