第一個問題在這裏的意圖。那麼,傳遞給preg_replace_callback($arg1, $arg2...)
第二個參數是有望得到贖回。這就是爲什麼你有這個錯誤。在那裏你與你的代碼去,但也許下面的代碼可能拋出更多的光線,並幫助你重新審視要麼/澄清你的問題,目的+目標或重新考慮你的代碼目前還不清楚。試想一下:
<?php
$string = "ৎ whatever ᛮ again whatever ọ";
$modSettings = array('disableEntityCheck'=>array());
$func = array(
"fix_stuff" => function($param=20){ echo $param;},
"do_stuff" => function($param=10){ echo $param;},
"entity_fix" => function($matches){ return $matches[0] . "YES!!! ";},
);
$ent_check = empty($modSettings['disableEntityCheck']) ? array(preg_replace_callback('#\d#', $func['entity_fix'], $string)) : array('', '');
var_dump($ent_check);
// DISPLAYS
array (size=1)
0 => string 'YES!!! 5YES!!! 1YES!!! 0YES!!! whatever YES!!! 8YES!!! 7YES!!! 0YES!!! again whatever YES!!! 8YES!!! 8YES!!! 5YES!!! '
注意,在上面的代碼中,傳遞給preg_replace_callback
第二個參數是一個函數雖然通過爲參考到陣列的「entity_fix」鍵:$ FUNC。這是爲了強調這樣一個事實,即也可以通過這種方式傳遞第二個參數。我們希望,這在這裏給你一個小祕密揭開序幕;-)
好運!