我嘗試下面的代碼:有什麼語法獲得create_function函數作爲回調的工作:
$for_callback=create_function('$match','return $GLOBALS[\'replacements\'][$match[1]];');
$result = preg_replace_callback($regex, '$for_callback', $string);
變量$GLOBALS['replacements']
是動態生成在調用此函數之前。
我得到一個錯誤消息像
Warning: preg_replace_callback() [function.preg-replace-callback]: Requires argument 2, '$for_callback', to be a valid callback in...
創建的函數和回調都是新的我。這是由nickb在My question about preg_replace轉給preg_replace_callback
給我的一些代碼增長出來的。
我想要做的是將該答案中的代碼封裝到一個函數中,並且遇到了範圍錯誤,從而避免重新定義函數。 (升級到PHP 5.3+是我目前的遠程可選項)。
我如何得到這個工作?
''$ match''應該只是'$ match',或者如果你的貨是邪教編程心情,''$匹配「'。同樣的其他引用變量。 –
我認爲看起來很奇怪,但是這裏是一個來自php.net的剪輯:$ newfunc = create_function('$ a,$ b','return'ln($ a)+ ln($ b)=「.log($ a * $ b);');.它看起來像PHP代碼。實際的錯誤不在我的'create_fuction()'中,而是在我的'preg_replace_callback()'中,在那裏我留下了他們不屬於的函數變量的單引號。 – TecBrat