程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> PHP基礎知識及學習心得

PHP基礎知識及學習心得

編輯:PHP基礎知識
 

1,花括號“{}”可以像“[]”操作數組一樣操作字符串,來獲得指定位置的字符。

2,PHP標簽“<?php ?>”在獨立PHP腳本內可以不寫結束標簽,這是為了避免意外的空格導致輸出而報錯。可以用注釋來標明腳本結束。

3,echo是語法結構,不是函數。後面跟多個字符串時用逗號“,”效率更好。

4,數組中,1、’1’、true為索引的時候都會強制轉換為1。而’01’不會進行轉換,會按照字符串處理。

5,將一個類的代碼寫在不同PHP標簽內是不合法的,會報語法錯誤。而函數則沒問題。

6,session與cookie的區別與關系。
session保存在服務器上,cookie保存在客戶浏覽器上;
session保存可以是硬盤上的文件、數據庫、memcached,cookie可以保存到硬盤(持久cookie)和內存裡(會話cookie);
session_id傳遞方式有兩種,一是cookie,二是get方式(可以通過 session.name 配置項來指定保存session_id的變量名稱)。

7,獲得當前時間戳用$_SERVER[‘REQUEST_TIME’]代替time(),可以減少一次函數調用,效率更高。

8,檢查字符串是否超過某長度可以用isset($str{n})的語法代替strlen()函數,例如:判斷$a的長度是否超過5,可以用isset($a{5})來判斷。這樣效率更高。

9,header()函數過後要exit,否則後面代碼還會執行。

10,大數組用引用傳遞,減少內存占用,用完就unset()。

11,數據庫連接在使用的時候才建立,完全用完了記得關閉連接。

12,set_time_limit()的局限性。只能限制腳本本身的運行時間,對於外部執行的時間無法控制,例如:system()函數,流操作,數據庫查詢等。

13,abstract和interface的區別:
abstract可以有非抽象方法,interface不行;
abstract對方法的訪問控制可以有protected,而interface必須為public;
abstract只能被繼承,當然一個類只能繼承一個類,而一個類則可以實現多個interface。

14,echo,print,print_r,var_dump,var_export的區別:
echo,print是語法結構,不是函數,而且只能顯示基本類型,不能顯示數組和對象,其他都是函數,可以顯示數組和對象;
echo 可以顯示多個變量,用逗號隔開;
print_r第二個參數可以決定是輸出變量,還是將變量作為返回值;
var_dump會打印變量的詳細信息,例如長度和類型,而且可以傳遞多個變量作為參數;
var_export返回的是合法PHP代碼格式。

15,驗證郵箱: filter_var($email, FILTER_VALIDATE_EMAIL);

16,獲取文件擴展名的方法:
pathinfo($filename),取extension的值。
end(explode(‘.’,$filename))。

17,文件鎖定函數flock——的常量參數。
共享鎖(讀取操作)——LOCK_SH
獨占鎖(寫入操作)——LOCK_EX
釋放鎖(無論共享還是獨占)——LOCK_UN
防堵塞——LOCK_NB
可以通過fclose()函數釋放鎖定操作。

18,驗證字符串是否是合法IP:
不用正則,直接用ip2long(),合法則返回數字,不合法則返回false。

19,PHP 5.3開始,可以使用__DIR__來獲得當前腳本所在目錄,不用再realpath(__FILE__)了。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved