每位程式設計師都會犯錯。畢竟,我們都是人類。
可能會忘記加上分號,使用錯誤的變數名稱,或者傳遞錯誤的引數給函式。
在 PHP 中有三種主要的錯誤類型:
- 警告:這些是較輕微的錯誤,不會停止程式的執行。PHP 會輸出一個訊息,然後繼續執行。
- 注意事項:與警告類似,注意事項也不會停止程式的執行,而只是輸出一個訊息。
- 錯誤:錯誤會終止程式的執行,並輸出一個告訴你錯誤原因的訊息。
錯誤訊息在哪裡輸出呢?這取決於你的設定。
在開發模式中,將 PHP 的錯誤直接記錄到網頁中很常見,同時也記錄在錯誤日誌中。你希望能夠盡早看到這些錯誤,以便修正它們。
然而,在正式部署環境中,你不希望在網頁中顯示這些錯誤,但你仍然想要知道它們。因此,你需要將它們記錄到錯誤日誌中。
這些設定都在 PHP 的設定檔中決定。
如果你還不熟悉這些,沒關係,你的伺服器配置中有一個檔案決定了 PHP 的運行方式,它就是 php.ini
。
php.ini
的確切位置取決於你的設定。要找出自己的設定,最簡單的方法是將以下程式碼添加到一個 PHP 檔案中,然後在瀏覽器中執行它:
<?php
phpinfo();
?>
然後你將在 “Loaded Configuration File” 下方看到檔案位置:
在我的例子中是 /Applications/MAMP/bin/php/php8.1.0/conf/php.ini
。
注意:phpinfo()
生成的資訊包含了許多其他有用的資訊,記得查看它們。
使用 MAMP,你可以打開 MAMP 應用程式資料夾,然後打開 bin/php
,進入你所使用的 PHP 版本(例如我的是 8.1.0),然後進入 conf
。在那裡你會找到 php.ini
檔案:
打開這個檔案,裡面有一長串的設定,並提供了對每個設定的詳細解釋。
我們對 display_errors
非常感興趣:
在正式部署環境中,希望設置它的值為 Off
,如上方的文件所說。
這將使得錯誤不會再顯示在網頁上,但你仍然可以在這個案例中的 MAMP 的 logs
資料夾中的 php_error.log
檔案中看到它們:
這個檔案的位置取決於你的配置方式。
你可以使用 error_log()
函式將額外的資訊加入錯誤日誌:
error_log('test');
通常會使用錯誤記錄服務(例如 Monolog)來處理錯誤。