首頁 >後端開發 >php教程 >為什麼我的 PHP 程式碼拋出「無法透過引用傳遞參數 2」錯誤?

為什麼我的 PHP 程式碼拋出「無法透過引用傳遞參數 2」錯誤?

Barbara Streisand
Barbara Streisand原創
2024-12-10 16:28:11364瀏覽

Why Does My PHP Code Throw a

理解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嘗試將兩個參數綁定到準備好的語句:

  • 第一個參數是整數 (0),並以數值傳遞。
  • 第二個參數是字串 ($selectedDate )並且也是按值傳遞。

但是,第二個參數應該是對變數的引用,由「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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn