高級php程序員面試題

php程序員就是從事開發計算機語言的人,下面是本站小編精心爲大家整理的關於高級php程序員面試題,希望對大家有幫助,更多內容請關注應屆畢業生網!

高級php程序員面試題

  一、mysql相關知識

 1、 mysql優化方式

MYSQL 優化常用方法

mysql 性能優化方案

2、如何分庫分表

參考:

_

3、 Mysql+如何做雙機熱備和負載均衡

如何做雙機熱備和負載均衡

 4、數據表類型有哪些

MyISAM、InnoDB、HEAP、BOB,ARCHIVE,CSV等

MyISAM:成熟、穩定、易於管理,快速讀取。一些功能不支持(事務等),表級鎖。

InnoDB:支持事務、外鍵等特性、數據行鎖定。空間佔用大,不支持全文索引等。

myisam和Innodb引擎的主要特點

MySQL的存儲引擎MyISAM與InnoDB有什麼區別?

 5、防sql注入方法

mysql_escape_string(strip_tags($arr["$val"]));

/**

* 函數名稱:post_check()

* 函數作用:對提交的編輯內容進行處理

* 參  數:$post: 要提交的內容

* 返 回 值:$post: 返回過濾後的內容

*/

function post_check($post){

if(!get_magic_quotes_gpc()){// 判斷magic_quotes_gpc是否爲打開

$post = addslashes($post);// 進行magic_quotes_gpc沒有打開的情況對提交數據的過濾

}

$post = str_replace("_","_",$post);// 把 '_'過濾掉

$post = str_replace("%","%",$post);// 把 '%'過濾掉

$post = nl2br($post);// 回車轉換

$post =htmlspecialchars($post);// html標記轉換

return $post;

}

 6、mysql把一個大表拆分多個表後,如何解決跨表查詢效率問題

  7、索引應用

什麼情況下考慮索引

什麼情況不適合索引

一個語句是否用到索引如何判斷

經常發生的用不到索引的場景:

like '%.....'

數據類型隱式轉換

or 關鍵字加其它條件約束

全文索引:

只能用於MYIsAM表,在CHAR,VARCHAR,TEXT類型的列上創建。

 8、mysql對於大表(千萬級),要怎麼優化呢?

參考

 9、mysql的慢查詢問題

其實通過慢查詢日誌來分析是一種比較簡單的方式,如果不想看日誌,可以藉助工具來完成,

如mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter等,感覺自己來分析一個需要豐富的經驗,一個浪費時間。

10、關於用戶登錄狀態存session,cookie還是數據庫或者memcache的優劣

關於用戶登錄狀態存session%2Ccookie還是數據庫或者memcache的`優劣

 11、事務應用極端情況處理

  12、sql語言分4大類請列舉

DDL--CREATE,DROP,ALTER

DML--INSERT,UPDATE,DELETE

DQL-SELECT

DCL--GRANT,REVOKE,COMMIT,ROLLBACK

  二、php基礎

session的跨域共享 php連接mysql數據庫的幾種方式及區別

mysql:面向過程

mysqli:面向對象

pdo:可移植性高

請參考:php基礎系列:PHP連接MySQL數據庫用到的三種API

  三、php高級

長連接和短連接的使用socket的使用支付安全問題

面向對象

三大特性:封裝、繼承、多態(方法重寫)。

抽象類:abstract,至少有一個方法是抽象方法,不能被實例化,爲子類定義公共接口。

接口:interface,解決php的單繼承問題,所有方法都是public訪問權限的抽象方法,不能聲明變量只能聲明常量。

繼承一個類的同時實現多個接口

class A extends B implements 接口1,接口2...,接口n(){

//實現所有接口中的方法

}lamp 和 lnmp 網站架構性能差異的原因分析解釋性語言和編譯性語言的性能分析,舉例。

  四、正則

email,html,js等匹配

  五、開發基礎

進程和線程定義,區別和聯繫。

進程的狀態:運行run、就緒ready、等待wait六、Nosql數據庫

memcached、redis、mongodb的區別聯繫

3個場景完全不同的東西。ached:單一鍵值對內存緩存的,做對象緩存無可替代的分佈式緩存;s:是算法和數據結構的集合,快速的數據結構操作是他最大的特點,支持數據持久化;odb是bson結構、介於rdb和nosql之間的,更鬆散更靈活的,但是不支持事務,只用作非重要數據存儲。

參考 MongoDB 或者 redis 可以替代 memcached 嗎?

 七、常用linux命令

比如軟鏈接

 八、架構相關

項目上線前的壓力測試,單臺服務器支持的併發數,pv數。

服務器資源合理分配問題 CPU:Apache

MySQL處在高負載環境下,磁盤IO讀寫過多,肯定會佔用很多資源,必然會CPU佔用過高。

內存:內存庫,數據庫軟件

硬盤:文件

web2.0架構選擇 MongoDB+redis 或者 MySQL+Memcached 比較好的組合,邏輯簡單的就用NOSQL

當前流行主要網站架構

LAMP、LNMP、LLMP

現在網絡上還有一種LNAMP構架,也就是綜合了nginx和Apache的優點,使用Apache負載PHP,nginx負責解析其他Web請求,使用nginx的rewrite模塊,但是Apache端口不對外開放,Apache的許多模塊都可以不加載減少資源。


更多php面試題推薦:

1.2017年PHP面試題與答案

2.高級php程序員面試題

3.2017年PHP面試之編程題及答案

4.一套PHP面試題2017

5.十個值得深思的PHP面試問題

面試之php自帶的幾個防止sql注入的函數

7.2017年PHP面試題之HTTP狀態碼出現問題

8.2017年PHP工程師面試題集

9.2017年PHP面試編程題

10.英文題目的PHP面試題及答案