0
PHP當然執行雙引號中的字符串變量替換:PHP雙引號串分析器
$test = 'something';
echo "This is a $test";
//Output: This is a something
我正在尋找的是PHP的變量替換,但有回調:
function callback($key, &$value) {
$value=strtoupper($value);
}
$test = 'something';
echo some_cool_function('This is a $test', callback);
//Output: This is a SOMETHING
(當然這是一個完全任意的例子 - 我不想做一些簡單的操作,只要將值轉換爲大寫就可以)
因此callback
將被調用爲ea ch變量(或者可能包含所有變量的數組,如'$test' => 'something'
)。這樣我可以直接操作PHP,並且可以使用PHP執行的變量和替換值。
我知道類似的東西可以用回調等正則表達式來完成。但是,PHP處理變量如$test[0]
,複雜語法({ }
)等可能會複雜起作用的複雜性非常高。
PHP是否以某種方式公開其用於雙引號字符串的內部字符串分析器?
我很困惑,你想要做什麼。你的意思是像一個for語句循環變量?例如:'$ test = ['test1','test2']; foreach($ test as $ val){$ testString =「這是一個$ val」; some_cool_function($ testString); }' – rubes114
雙引號字符串處理本身並不公開。你必須[考慮eval](http://stackoverflow.com/questions/18197348/replacing-variables-in-a-string),或者使用更合理的正則表達式來替換數組和複數變量,或者使用'{ $ ...}'複雜的變量名[或'{...}'標記](http://stackoverflow.com/questions/18197348/replacing-variables-in-a-string)的依賴。 – mario
我已經更新了我的問題,並提供了我正在尋找的更詳細的示例。 – Dan