1. 程式人生 > >php基礎語法(文件加載和錯誤)

php基礎語法(文件加載和錯誤)

true 另一個 發現 當前 不存在 網頁 () 同時 parse

文件加載

4個文件加載的語法形式(註意,不是函數):

include, include_once, require, require_once;

他們的本質是一樣的,都是用於加載/引入/包含/載入一個外部文件到當前php代碼中來。

他們只在2個方面有細微區別:

1,如果加載文件失敗,則有不同的處理規則;includerequire不同

2,如果加載文件重復,則有不同的處理規則;XXXXXX_once不同;

3,他們都是語法結構,而非函數,使用形式可以有兩種:

3.1 include ‘文件路徑’;

3.2 include (‘文件路徑’);

include_once include

的區別:前者能夠保證不會被重復加載

require include的區別:

如果被包含文件不存在,即引用失敗(出錯)時,include發出警告並繼續執行後續代碼require直接終止。

錯誤處理

語法錯誤:

程序沒法運行,直接提示語法錯誤。

運行時錯誤:

只有程序運行到某行,或在某些特定的情形下運行才會發生的錯誤。

邏輯錯誤:

程序從頭到尾運行都沒有發生(並提示)錯誤,但程序運行計算的結果是錯誤的。

系統錯誤:

E_ERROR:系統嚴重錯誤

一發生,程序立即停止執行。

E_WARNING:系統警告

一發生,提示錯誤,並繼續執行。

E_PARSE:語法錯誤

一發生,提示錯誤,而且代碼完全不會運行

——在運行之前先檢查語法。

E_NOTICE:系統提示

一發生,提示錯誤,並繼續執行。

用戶自定義錯誤

只有3個:

E_USER_ERROR;

E_USER_WARNING;

E_USER_NOTICE;

就是由程序員通過程序代碼而“產生”一個錯誤。

語法:

trigger_error(“錯誤提示 用戶錯誤代號);

錯誤的顯示控制

網頁中顯示(提示)錯誤信息,是可以進行控制的,有2種途徑:

1,在php.ini文件中設定,對所有php程序都有效;

2,在當前腳本文件中,只對當前腳步文件有效。

錯誤的顯示有2個方面可以進行控制;

1,設定是否顯示:display_error:

php.ini中;display_error = On; //表示顯示, Off表示不顯示;

腳本中: ini_set(“display_error”, 1); //1表示顯示, 0表示不顯示,也可以用truefalse

腳本中的設定優先級高。

2,設定顯示哪些級別的錯誤——依賴與第一項設定為顯示的情況。

php.ini文件中:

error_reporting = E_NOTICE; //只顯示E_NOTICE錯誤

error_reporting = E_NOTICE | E_WARNING; //顯示E_NOTICEE_WARNING錯誤

error_reporting = E_NOTICE | E_WARNING | E_USER_ERROR;

//顯示E_NOTICEE_WARNINGE_USER_ERROR錯誤

在代碼中設定:

ini_set(“error_reporting”, E_NOTICE); //只顯示E_NOTICE錯誤

ini_set(“error_reporting”, E_NOTICE | E_WARNING); ////顯示E_NOTICEE_WARNING錯誤

ini_set(“error_reporting”, E_ALL | E_STRICT & ~E_NOTICE); //只關閉E_NOTICE錯誤

ini_set()含義可以設定幾乎所有php.ini中的設定項,形式如下:

ini_set(“設定項名稱” ,值); //這種設定都只對當前腳本有效,而且無需重啟apache,很方便。

另一個對應函數是:ini_get(“設定項名稱”);//用於獲取某項的值。

記錄錯誤日誌

在開發階段,我們通常都是顯示所有錯誤——意圖解決錯誤

在產品階段,我們通常都是隱藏所有錯誤——並同時將錯誤信息記錄到文件中——錯誤日誌文件。

我們可以自己查看錯誤日誌以解決開發階段沒有發現的錯誤問題。

記錄錯誤日誌同樣有2種途徑:

1,在Php.ini文件中設定:

log_errors = On //用於設定是否記錄錯誤日誌,On記錄,Off不記錄

error_log = “錯誤日誌文件名”; //設定錯誤日誌的文件名

此時,該文件沒有給定路徑,則系統會在每個文件夾下建立該文件並記錄進去。

error_log還有一個特殊值可以使用:

error_log = syslog; //此時不會記錄錯誤日誌文件,而是把錯誤信息寫入到系統錯誤日誌中

php基礎語法(文件加載和錯誤)