0
我想知道是否有一種方法在字符串內部進行自動變量替換。我現在可以用preg_replace
和strtr
來模擬這個,但我不確定是否有更好的方法。我正在考慮使用eval
,但似乎無法弄清楚如何正確使用它。php - 自動字符串模板
strtr
<?php
$replacement = array('$test' => "dog");
$template = 'this is a $test';
$statement = strtr($template, $replacement);
echo $statement;
?>
preg_replace
<?php
$template = 'this is a $test';
$statement = preg_replace('/\$test/', 'dog', $template);
echo $statement;
?>
eval
想法
<?php
$template = 'this is a $test';
$test = 'dog';
eval('$statement = "$template";');
echo $statement;
?>
你必須是非常,非常,非常,非常小心使用'EVAL之前驗證您的字符串到最高程度()'。 'eval()'可能會讓你的網站更容易被黑客竊取。使用'eval()'並不違法,但由於漏洞通常會極力阻止它。我會敦促你制定'eval()'你的計劃Z - 只有當其他一切不能按你的要求執行時才能使用。 – mickmackusa
其他兩種功能在任何特定情況下都會使你失敗嗎?他們似乎是這項任務的明智選擇。 – mickmackusa
@mickmackusa我想這會更快,不確定。 'eval'應該是安全的,因爲它們是我定義自己的變量。不是用戶/客戶端輸入。 –