理解PHP 的「無法透過引用傳遞參數2」錯誤
在PHP 中,透過引用傳遞參數允許對傳遞的變數進行更改反映在原始變數中。但是,如果參數預計透過引用傳遞,但實際上並非如此,則可能會導致「無法透過引用傳遞參數 2」錯誤。
特定錯誤場景:帶有日期比較的 UPDATE 查詢
考慮以下 PHP 程式碼:
$selectedDate = date('d-m-Y', ($createDate)); $sql = "UPDATE Session SET Active = ? WHERE DATE_FORMAT(SessionDate,'%Y-%m-%d' ) <= ?"; $update = $mysqli->prepare($sql); $update->bind_param("is", 0, $selectedDate); // Line 13
在此範例中,Line 13嘗試將兩個參數綁定到準備好的語句:
但是,第二個參數應該是對變數的引用,由「s」表示在「is」類型字串中。由於它不是透過引用傳遞,因此會拋出錯誤「無法透過引用傳遞參數 2」。
解:傳遞變數引用
要解此錯誤,請傳遞第二個參數的變數引用,如下所示:
$isActive = 0; $update->bind_param("is", $isActive, $selectedDate);
透過引用傳遞$isActive,對其進行更改準備好的語句中的內容將反映在原始變數中。
理解PHP 中的引用
有關PHP 中引用的更多信息,您可以參考以下文檔:http://php.net/manual/en/ language.references.pass.php.
以上是為什麼我的 PHP 程式碼拋出「無法透過引用傳遞參數 2」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!