亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何解決“可恢復的致命錯誤:類Closure的對象無法在……中轉換為字符串”

如何解決“可恢復的致命錯誤:類Closure的對象無法在……中轉換為字符串”

PHP
慕無忌1623718 2021-04-28 21:18:03
當我執行此代碼時出現此錯誤。我不知道該怎么辦。請幫忙<?php$Q = strtoupper($_GET['q']);$q = ucwords($_GET['q']); $result = mysqli_query($conn, "SELECT src FROM mytable WHERE '%$Q%' NOT LIKE 0 OR SRC LIKE '%$Q%'");$total = mysqli_num_rows($result);$numRows = function() {    if($total <= 4){        return 1;    } else {        return ($total / 4);    }};if($row = mysqli_fetch_array($result)){ ?>                  <h2>Resultados para la búsqueda <?php echo "$q"?></h2>    <h3>Número de resultados total: <?php echo "$total"?></h3><?php  }
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

根據錯誤,聽起來您好像是在使用$numRows字符串,但這必須在代碼中更遠的地方,這是您尚未發布的內容。$numRows()我相信您可以調用函數,但是在內部$numRows,您可以使用$total。正如Zain Farooq所建議的那樣,您也許可以,use ($total)但是最好$total將函數參數作為參數傳遞。例子:


$total = mysqli_num_rows($result);

$getNumRows = function($tot) 

{

    if($tot <= 4){

        return 1;

    } else {

        return ($tot / 4);

    }

};

$result = $getNumRows($total);

echo "I have {$result} rows.";

我認為您正在執行的操作,在某處正在執行類似的操作echo $numRows,但是它必須是echo $numRows(),因此函數被調用了。


查看完整回答
反對 回復 2021-05-07
?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

你的問題就在這里


$numRows = (function() use ($total) {

if($total <= 4){

return 1;

}else{

 return ($total / 4);

}

})();

您必須在括號之間包裝函數,如果要傳遞參數,則應使用 use()


查看完整回答
反對 回復 2021-05-07
  • 2 回答
  • 0 關注
  • 155 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號