文章主要為大家詳細介紹了10個對初學者非常有用的PHP技巧,這些PHP技巧適用於初學者,而不是那些已經在使用MVC框架的人,感興趣的小夥伴們可以參考一下。
本文介紹一些關於改善和優化PHP程式碼的提示和技巧,供大家參考,具體內容如下
1.不要使用相對路徑,要定義一個根路徑
這樣的程式碼行很常見:
?
1
require_once('../../lib/some_');
這種方法有很多缺點:
1)、它首先搜尋php包括路徑中的指定目錄,然後檢視當前目錄。因此,會檢查許多目錄。
2)、當一個指令碼被包含在另一個指令碼的不同目錄中時,它的基本目錄變為包含指令碼的目錄。
3)、另一個問題是,當一個指令碼從cron執行時,它可能不會將它的父目錄作為工作目錄。
所以使用絕對路徑便成為了一個好方法:
?
1
2
3
4
define('ROOT' , '/var/www/project/');
require_once(ROOT . '../../lib/some_');
//rest of the code
這就是一個絕對路徑,並且會一直保持不變。但是,我們可以進一步改善。目錄/var/www/project可以變,那麼我們每次都要改嗎?
不,使用魔術常量如__FILE__可以讓它變得可移植。請仔細看:
?
1
2
3
4
5
6
7
//suppose your script is /var/www/project/
//Then __FILE__ will always have that full path.
define('ROOT' , pathinfo(__FILE__, PATHINFO_DIRNAME));
require_once(ROOT . '../../lib/some_');
//rest of the code
所以現在,即使你將專案轉移到一個不同的目錄,例如將其移動到一個線上的服務器上,這些程式碼不需要更改就可以執行。
2.不使用require,包括require_once或include_once
你的指令碼上可能會包括各種檔案,如類庫,實用程式檔案和輔助函式等,就像這些:
?
1
2
3
4
require_once('lib/');
require_once('lib/');
require_once('helpers/utitlity_');
這相當粗糙。程式碼需要更加靈活。寫好輔助函式可以更容易地包含東西。舉個例子:
?
1
2
3
4
5
6
7
8
9
function load_class($class_name)
{
//path to the class file
$path = ROOT . '/lib/' . $class_name . '');
require_once( $path );
}
load_class('Database');
load_class('Mail');
看到區別了嗎?很明顯。不需要任何更多的解釋。
你還可以進一步改善:
?
1
2
3
4
5
6
7
8
9
10
function load_class($class_name)
{
//path to the class file
$path = ROOT . '/lib/' . $class_name . '');
if(file_exists($path))
{
require_once( $path );
}
}
這樣做可以完成很多事情:
為同一個類檔案搜尋多個目錄。
輕鬆更改包含類檔案的目錄,而不破壞任何地方的程式碼。
使用類似的函式用於載入包含輔助函式、HTML內容等的檔案。
3.在應用程式中維護除錯環境
在開發過程中,我們echo資料庫查詢,轉儲創造問題的變數,然後一旦問題被解決,我們註釋它們或刪除它們。但讓一切留在原地可提供長效幫助。
在開發計算機上,你可以這樣做:
?
1
2