簡體   English   中英

當我嘗試實例化一個不存在的 class 時,PHP 似乎沒有警告我

[英]PHP does not appear to warn me when I try to instantiate a non-existent class

我正在使用 PHP5.3 命名空間類。 一個常見的錯誤是沒有正確使用命名空間(絕對與相對,例如 \App\Models\Something vs Models\Something vs \Something)。 我通常在我的課程中使用 PDO 以便 PHP 嘗試查看\App\PDO

我已經有了

ini_set('display_errors', 'ON');
ini_set('error_reporting', 'E_ALL | E_STRICT');

我有時在做的時候會注意到

$user = new User(); // when User should be located \App\User or App\User as I am in the root namespace, PHP does not trigger errors ... just give me a blank screen ...

你的兩條線都是錯誤的:

ini_set('display_errors', true);
ini_set('error_reporting', E_ALL | E_STRICT);

這些值不應該用引號引起來。

第二個參數中的單引號是錯誤的。 它被評估為0。

ini_set('error_reporting', 'E_ALL | E_STRICT');

// same as:

ini_set('error_reporting', 0);

有關可以作為第二個參數傳遞的內容的一些有效示例,請參閱此頁面

一旦你修復它,你會得到:

PHP Fatal error:  Class 'Foo' not found

你的代碼應該是這樣的:

ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL | E_STRICT);

此外,請確認是否允許您通過ini_set()更改 php 設置,因為您可能認為您正在更改display_errorserror_reporting ,但您可能不允許這樣做。 也就是說,盡管您的代碼執行,但解析器不會考慮您的設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM