首頁 >後端開發 >php教程 >為什麼 PHP 會拋出「從空值建立預設物件」錯誤?

為什麼 PHP 會拋出「從空值建立預設物件」錯誤?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-19 21:31:10117瀏覽

Why Does PHP Throw a

理解PHP 的「從空值建立預設物件」錯誤

當您存取看似未設定的屬性時,通常會出現PHP 的「從空值建立預設物件”錯誤多變的。此錯誤是 PHP 5.4 及更高版本中嚴格錯誤處理的結果。

當 PHP 嘗試為還不是物件或明確設定為 NULL 的變數初始化預設物件時,會觸發此錯誤。例如:

$res = NULL;
$res->success = false;

在 PHP 5.3 及更早版本中,此程式碼不會產生任何錯誤。但是,在 PHP 5.4 及更高版本中,啟用了 E_STRICT 警告(如果您將 error_reporting 設定為至少此級別,則啟用 E_WARNING),從而導致「從空值建立預設物件」錯誤。

$res 需要先聲明嗎?

不,將 $res 宣告為物件是沒有必要。但是,在存取其屬性之前,必須確保 $res 是一個物件。為此,您可以將其初始化為特定類別的對象,也可以使用通用stdClass 物件:

// Initialize as a specific class
$res = new MyClassName();

// Initialize as a generic object
$res = new \stdClass();

一旦$res 是一個對象,您就可以存取和修改其屬性,而無需遇到“從空值建立預設物件”錯誤。

$res->success = false; // No error

以上是為什麼 PHP 會拋出「從空值建立預設物件」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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