所以我遇到了一些問題。我知道乙個解決方案,但它看起來不太乾淨,我想知道是否有更好的解決方案。
我正在編寫乙個mysqli包裝器,用於執行準備好的語句。因為它是乙個包裝器,可以重用
(動態)
返回的列數取決於查詢,並且不是靜態的。
我已經找到了乙個解決這個問題的方法,似乎每個人都在使用
call_user_func_array
它是有效的,但我的問題是它讓我建立了乙個額外的引用陣列,在一開始我不應該真正需要它。
例如:// connect, prepare statement, etc.
$stmt->execute();
$fields = $stmt->result_metadata();
$fields = $fields->fetch_fields();
foreach ($fields as $field) {
// unnecessary creation of an array.
$params = &$row[$field->name];
call_user_func_array(array($stmt, 'bind_result'), $params);
現在我正在建立另乙個陣列
呼叫使用者函式陣列
通過引用傳遞引數,因為它不符合方法定義。
有辦法嗎
呼叫使用者函式陣列
是否遵守方法/功能定義?是否有更清晰的方法來呼叫引數數目可變的方法/函式?或者,是否只有乙個整體上更清潔和更好的解決方案來解決這個問題?
我打**時也遇到類似的問題
bind_param
同時嘗試保持能夠更改繫結引數和重新執行語句的功能不變。
在某些方面,下面的**究竟在做什麼。
$row[$field->name] = &$row[$field->name];
它奇怪地工作,不會產生任何錯誤,儘管我不知道變數如何引用自己。除了我沒有建立另乙個陣列這一事實之外,它和前者有什麼區別嗎?這樣比較好嗎?
謝謝。這就是我如何使用反射api而不是
call_user_fun_array
. 關於我使用它的任何輸入,效能與
呼叫使用者函式陣列
foreach ($fields as $field) {
$row[$field->name] = null;
$refmethod = new reflectionmethod($stmt, 'bind_result');
$refmethod->invokeargs($stmt, $row);
php傳參呼叫python指令碼
由於我的 專案的後端採用的是php 但是在爬蟲方面的時候 python是最簡單的選擇 因此需要php與python進行互動 需求是要帶引數的 例如自動登入某個 而使用者密碼是不同的 查閱資料得知 php有這個函式exec 這個函式的作用可以執行第三方程式 約等於在shell命令列中輸入指令 約等於c...
php傳參呼叫kettle指令碼
php 4,php 5,php 7 system 執行外部程式,並且顯示輸出 system string command,int return var string 同 c 版本的system 函式一樣,本函式執行command引數所指定的命令,並且輸出執行結果。如果 php 執行在伺服器模組中,s...
php呼叫exec函式
在php中,經常遇到php呼叫外部指令碼程式,如exec,system函式 本環境在windows平台下測試 在php中呼叫perl指令碼,perl檔案內容如下 c xampp perl bin perl usejson useencode my val helloworld n my jsonco...