分享PHP外包公司常見的幾道面試題。
1.完整的商城系統包含哪些模塊?
商品、促銷、訂單、會員模塊、權限模塊、報表、廣告。
2.PHP運行模式:CGI、FAST-CGI、CLI、ISAPI、APACHE模塊。
不同的web服務器使用的是不同的運行模式來運行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的三種數據採集發送。
閱讀更多 美食代碼喵 的文章