0
我不明白爲什麼會出現此錯誤。 我想更改數據庫中數據的一些字符串,所以我使用了preg_replace_callback。但是,當我在回調函數的定義中使用
$row = $this->result->fetch_assoc();
分析器,錯誤回答
所有代碼:
public function tRsql() {
$argNums = func_num_args();
$argsArr = func_get_args();
function change($matches) {
if(stripos($matches[0], "sql:")) {
$str = ltrim($matches[0], "#sql:");
$str = rtrim($str, ":");
$row = $this->result->fetch_assoc();
$str = $row[$str];
return $str;
} else {
return $matches[0];
}
}
for($i = 0; $i < $this->numOfRows; $i++) {
$argsArr = preg_replace_callback("/(#sql\:)\S+\:/", "change", $argsArr);
$this->tR(implode(",",$argsArr));
}
}
你在哪裏學會了在類方法中定義全局函數?這不是JavaScript。使'change'函數成爲一個類方法,你很好。 – JustOnUnderMillions
函數'change'不是該對象的一個方法,而是全局命名空間中的一個動態創建的函數。您當然可以爲動態使用定義這樣的功能。但是,僅此而已。 – arkascha
我試過這個,但是當我定義'change'func。作爲一個類方法,其他錯誤發生:'preg_replace_callback():需要參數2,'change',作爲''有效回調'' – OneManWebDev