分享PHP常見的幾道面試題:
1.完整的商城系統包含哪些模組?
商品、促銷、訂單、會員模組、權限模組、報表、廣告。
2.PHP運作模式:CGI、FAST-CGI、CLI、ISAPI、APACHE模組。
不同的網頁伺服器使用的是不同的運行模式來運行php。
Apache :apache
NGINX:FAST-CGI
IIS:ISAPI
CLI模式:不是在web伺服器裡運行的,而是在命令列裡運行。
CGI模式:通用網關介面。
3.php線程安全與非線程安全是什麼?區別?怎麼選擇?
如果程式以多執行緒的方式運行,多執行緒的特點,資料共享,使用鎖機制的話就可以解決並發操作一共資源時出現的混亂問題,如果使用了鎖機制就是執行緒安全,否則就是線程不安全。
Fast-cgi底層是多進程的,無論執行緒安不安全都沒影響。結論:如果一個程式是以多執行緒的方式運行的,就要考慮線程安全,否則不要。
Linux下不用考慮執行緒安全,因為它是多進程的。
執行緒:多個執行緒之間變數可以共享。
進程:多個進程記憶體位址完全獨立,互不影響。
4.php.ini safe_mode配置影響?
safe_mode就是安全模式,如果php以安全模式運行,那麼有些函數就可能失效。預設就是關閉的。例如:unlink,mkdir,rmdir,mysql_*等等。
5.http協定無狀態是什麼意思?
每次發送資料或接收資料完成後,連線就斷開了。不會保持狀態。一直保持連線的就是有狀態的,例如qq,網遊等等。
6.php資料持久層 ? ORM單例模式?
php資料持久層是指把資料寫入到資料庫或檔案裡,儲存到裝置裡,持久化。
ORM(物件、關係、模型),就是model,一個模型就是要映射到一張資料表。只要操作模型,就能操作資料表。很多mvc的框架就是orm模式。
單例模式就是說一個類別只能建立一個物件。
7.strcasecmp-二進位安全性比較字串,什麼是二進位安全性?
二進位不安全:主要是指字串,有些字串轉換成二進位後會有特殊的意義,不再是原來字串的意義。
二進位安全性:怎麼轉換都是安全的。
8.正規表示式POSIX和PCRE是什麼?
是兩種規範的正規表示式。對應php的兩套函數。
PCRE:preg_xxx 現在都用這種,效能更好
POSIX:ereg_xxx
9.單一登入實作原理?
在一個程式中登陸成功後,透過ajax通知其它的項目,請求一個資料通知對方也登陸。如果發資料包? Js[ajax],php的三種資料收集發送。