[英]How to call class static and unstatic method with call_user_func()?
[英]array map + class method/function as callback + call_user_func
我不知道我在下面的代碼中做錯了什么,但是它不起作用。
if($_data_count = count($_csv_raw_array) > 0){
foreach($_csv_raw_array as $_csv_row){
array_push($this->_data, array_map(call_user_func(array($this, 'replace')), $_csv_row));
}
return $this->result(true, 'CSV parsing done.', '', $this->_data);
}
//替換函數為:
private function replace($_value){
return preg_match('/(\r\n|\n|\r)/', $_value) ? '' : $_value;
}
但是我不知道為什么它不起作用並拋出異常:
遇到PHP錯誤
嚴重程度:警告
消息:缺少Import :: replace()的參數1
文件名:libraries / Import.php
行號:116
基本上,我想在這里導入已經導入的CSV文件,現在我想將數組中存在的所有換行字符替換為空(無)。 但是每次我執行此代碼時,都會引發異常。 你們那里的人可以建議嗎? 請。
謝謝
正如評論中所指出的那樣,根據您的代碼判斷,您將希望刪除該call_user_func
,因為這會導致立即調用該函數,而這似乎並不是您想要的,我想是要過濾掉所有元素在每次迭代的$ _csv_row中:
if($_data_count = count($_csv_raw_array) > 0){
foreach($_csv_raw_array as $_csv_row){
array_push($this->_data, array_map(array($this, 'replace'), $_csv_row));
}
return $this->result(true, 'CSV parsing done.', '', $this->_data);
}
但是,我們只能猜測您的意圖是什么,您可能需要提供一個示例csv和所需的輸出,以便在無法解決問題的情況下更准確地了解您要查找的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.