對初學者非常有用的PHP技巧
文章主要為大家詳細介紹了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
-
提高PHP執行效率的50個技巧
PHP是一種HTML內嵌式的語言,是一種在服務器端執行的嵌入HTML文檔的腳本語言,下面是小編為大家整理的提高PHP執行效率的50個技巧,歡迎參考~1、用單引號代替雙引號來包含字符串,這樣做會更快一些。因為PHP會在雙引號包圍的字符串中搜尋變量,單引號則不會,注意:只有echo...
-
ThinkPHP中自動驗證
學無止境,剛開始學習PHP會覺得簡單,但是越學會越難。下面是小編整理的關於ThinkPHP中自動驗證的知識,希望對大家有用,更多消息請關注應屆畢業生網。ThinkPHP中自動驗證:array(‘字段’,‘驗證規則’,‘錯誤提示’[,‘驗證條件&rsqu...
-
php計算兩個文件相對路徑的方法
文章主要介紹了php計算兩個文件相對路徑的方法,涉及php操作字符串的`技巧,具有一定參考借鑑價值,需要的朋友可以參考下.一、問題:寫一個php函數算出兩個文件的相對路徑。例如$a="/a/b/c/d/";$b="/a/b/12/34/",B相對於A的相對路徑是什麼?二、解決方法:?123456789101...
-
PHP 7.1中都有哪些重大更新
PHP7.1.0帶來了大量的改進和新功能:可空類型返回空類型可迭代的psuedo-type支持常量可見的類數組解構square框架和在list()中允許指定keys多異常類型捕獲,以下是小編為大家搜索整理的PHP7.1中都有哪些重大更新,希望能給大家帶來幫助!更多精彩內容請及時關注我們應...