- 相關(guān)推薦
初級PHP程序員面試經(jīng)驗分享
有些phper們認為天下面試題目一大把,不能考核一個(gè)人的真實(shí)水平,想知道在網(wǎng)絡(luò )上流傳很廣的一部分php工程師面試題目,其實(shí)細細研究起來(lái),無(wú)論怎樣,能存在就表明其有存在的價(jià)值。小編在網(wǎng)上收集了PHP程序員面試技巧之口試題供大家參考,希望對大家有所幫助。

1、PHP的意思,它能干些什么?
PHP是一個(gè)基于服務(wù)端來(lái)創(chuàng )建動(dòng)態(tài)網(wǎng)站的腳本語(yǔ)言,您可以用PHP和HTML生成網(wǎng)站主頁(yè),英文的全稱(chēng)(Professional Home Pages)
a、WEB開(kāi)發(fā)、實(shí)現訂單、網(wǎng)絡(luò )通信、在線(xiàn)支付、一切互聯(lián)網(wǎng)可以實(shí)現的工作。
b、腳本的開(kāi)發(fā),Shell 腳本、 windows的計劃任務(wù)等。
c、軟件的開(kāi)發(fā),PHP-GTK等第三方的軟件,使用php語(yǔ)法配合其他的語(yǔ)言開(kāi)發(fā)軟件。
2、談?wù)剬vc的認識?
由模型(Model),視圖(View),控制器(Controller)完成的應用程序。 由模型發(fā)出要實(shí)現的功能到控制器,控制器接收組織功能傳遞給視圖;參考《PHP100視頻教程》43、44、75、76、77講。
3、GD庫是做什么用的?
GD庫提供了一系列用來(lái)處理圖片的功能,使用GD庫可以處理圖片,或者生成圖片。 在網(wǎng)站上GD庫通常用來(lái)生成縮略圖或者用來(lái)對圖片加水印或者對網(wǎng)站數據生成報表,F在常用的GD2功能更強大,可以實(shí)現對gif、png圖片的處理。
4、數據類(lèi)型(int char varchar datetime text)的意思; 請問(wèn)varchar和char有什么別?
int是數字類(lèi)型,char固定長(cháng)度字符串,varchar實(shí)際長(cháng)度字符串,datetime日期時(shí)間型,text文本字符串 ,char的場(chǎng)地固定為創(chuàng )建表設置的長(cháng)度,varchar為可變長(cháng)度的字符
5、表單中 get與post提交方法的區別?
get是發(fā)送請求HTTP協(xié)議通過(guò)url參數傳遞進(jìn)行接收 而post是實(shí)體數據,可以通過(guò)表單提交大量信息.
6、session與cookie的區別?
session:儲存用戶(hù)訪(fǎng)問(wèn)的全局唯一變量,存儲在服務(wù)器上的php指定的目錄中的一般用于后臺和安全性比較高的地方。cookie:是存儲在客戶(hù)端,對于Cookie來(lái)說(shuō)是存儲在用戶(hù)瀏覽器下面的,一般用戶(hù)
登陸,負載壓力比較大的地方?梢詼p輕服務(wù)器的負載。
7、echo( ),print( ),print_r( )的區別?
echo是PHP語(yǔ)句, print和print_r是函數,語(yǔ)句沒(méi)有返回值,函數可以有返回值print( ) 只能打印出簡(jiǎn)單類(lèi)型變量的值(如int,string) print_r( ) 可以打印出復雜類(lèi)型變量的值(如數組,對象) Echo 輸出一個(gè)或者多個(gè)字符串
8、什么是模板技術(shù)、能夠使HTML和PHP分離開(kāi)使用的模板?
模板技術(shù)就是使PHP和HTML、CSS、JS 分離,實(shí)現更加合理和代碼的部署Smarty ,XTemplate, Template Lite, Easy Template…
9、使用哪些工具進(jìn)行版本控制?
Cvs 、 Svn 、Vss 參考《PHP100視頻教程》94、95講
10、對于大流量的網(wǎng)站,您采用什么樣的方法來(lái)解決訪(fǎng)問(wèn)量問(wèn)題?
確認服務(wù)器硬件是否足夠支持當前的流量,數據庫讀寫(xiě)分離,優(yōu)化數據表, 程序功能規則,禁止外部的盜鏈,控制大文件的下載,使用不同主機分流主要流量 1、PHP程序上可以使用生成靜態(tài)文件實(shí)現服務(wù)數據庫壓力 2、使用PHP緩存技術(shù)、或第三方的mamcached 等緩存技術(shù)實(shí)現服務(wù)器壓力參考《PHP100視頻教程》samrty緩存技術(shù)、mamcached緩存用法
11、include和require的區別是什么?為避免多次包含同一文件可用什么代替它們?
包含文件不存在或者語(yǔ)法錯誤的時(shí)候require是致命的,include不是 require需要放在頭部預先載入,而include放在文件的任何位置隨時(shí)載入 還有一對擴展函數:require_once( ) include_once( )
12、mysql_fetch_row( )和mysql_fetch_array之間有什么區別?
mysql_fetch_row 是從結果集取出1行數組,作為枚舉 mysql_fetch_array 是從結果集取出一行數組作為關(guān)聯(lián)數組,或數字數組,兩者兼得
初級PHP程序員大部分因為工作能力的缺失,難免會(huì )缺乏自信,對程序員的崗位認知比較差,那么我就簡(jiǎn)單的分享下初級PHP程序員面試時(shí)有那些問(wèn)題,改如何應對?
第一:當你是還處在初級程序員要做好應對專(zhuān)業(yè)性的問(wèn)題
面試的時(shí)候可能會(huì )遇到專(zhuān)業(yè)點(diǎn)的面試官,有時(shí)候可能會(huì )詢(xún)問(wèn)一下比較抽象的概念,如面向對象的理解、MVC和MVVM設計模式的理解。其它的如session、各種奇奇怪怪的函數(很多根本記不住,基本靠手冊)、簡(jiǎn)單的算法等等,如果已經(jīng)PHP入門(mén),那么應該是沒(méi)什么問(wèn)題的。
第二:綜合性的問(wèn)題也時(shí)不時(shí)的考核下
為了考核程序員的綜合素質(zhì),有的面試官也不排除可能會(huì )出現一些干擾性的問(wèn)題,多繼承、異步、垃圾回收機制(GC,貌似5.x版本以后才有)等等。
第三:會(huì )要求一定的web前端的知識
少量前端的問(wèn)題幾乎不可避免,LOW一點(diǎn)的問(wèn)題比如怎么做web按鍵響應這種,進(jìn)階一點(diǎn)的比如CSS+DIV頁(yè)面架構,原生JS、JQuery、AngularJS的應用。不要覺(jué)得應聘PHP工程師為什么還要問(wèn)前端的問(wèn)題,小公司問(wèn)這些是因為小型團隊開(kāi)發(fā)Web應用時(shí)這些都是必備的功夫,公司在考慮人力成本問(wèn)題上自然不希望一個(gè)本來(lái)規模就不大的研發(fā)部門(mén)還要細分為多個(gè)工種,第四:數據庫方面是要有一定準備的
至于數據庫方面,了解基本知識+優(yōu)化即可,framework會(huì )幫你搞定其他的東西。而大公司除了以上技術(shù)問(wèn)題,更可能考量面試者的綜合素質(zhì)、團隊能力、職業(yè)素養等,這些則需要時(shí)間的沉淀和充分的準備。
第五:每次面試時(shí)要保持一個(gè)好的心態(tài)
調整心態(tài)和形象,良好的第一印象非常非常重要。
PHP面試常見(jiàn)題型
php中傳值與傳引用的區別?什么時(shí)候傳值什么時(shí)候傳引用?
按值傳遞:函數內對值的任何改變在函數外部都會(huì )被忽略
引用傳遞:函數內對值的任何改變在函數外部也能反映出這些修改
應用場(chǎng)景:按值傳遞時(shí),php必須復制值,而按引用傳遞則不需要復制值,故引用傳遞一般用于大字符串或對象。
說(shuō)幾個(gè)你知道的設計模式?
單例模式: 保證一個(gè)類(lèi)僅有一個(gè)實(shí)例,并提供一個(gè)訪(fǎng)問(wèn)他的全局訪(fǎng)問(wèn)點(diǎn)例如框架中的數據庫連接
簡(jiǎn)單工廠(chǎng)模式: 它具有創(chuàng )建對象的某些方法,可以使用工廠(chǎng)類(lèi)創(chuàng )建對象,而不直接使用 new。例如初始化數據庫的時(shí)候會(huì )用到,比如MySQL,MSSQL
策略模式: 針對一組算法,將每一個(gè)算法封裝到具有共同接口的獨立的類(lèi)中,例如進(jìn)入個(gè)人主頁(yè)時(shí),根據瀏覽者的不同,給予不同的顯示與操作
注冊模式: 提供了在程序中有條理的存放并管理一組全局對象 (object),例如ZF框架中的Zend_Registry::set
適配器模式: 將不同接口適配成統一的API接口,例如數據操作有mysql、mysqli、pdo等,可利用適配器模式統一接口
觀(guān)察者模式: 一個(gè)對象通過(guò)添加一個(gè)方法使本身變得可觀(guān)察。當可觀(guān)察的對象更改時(shí),它會(huì )將消息發(fā)送到已注冊的觀(guān)察者。例如實(shí)現實(shí)現消息推送
裝飾器模式: 不修改原類(lèi)代碼和繼承的情況下動(dòng)態(tài)擴展類(lèi)的功能,例如框架的每個(gè)Controller文件會(huì )提供before和after方法
迭代器模式: 提供一個(gè)方法順序訪(fǎng)問(wèn)一個(gè)聚合對象中各個(gè)元素,在PHP中將繼承 Iterator 類(lèi)
原型模式: 實(shí)現了一個(gè)原型接口,該接口用于創(chuàng )建當前對象的克隆。當直接創(chuàng )建對象的代價(jià)比較大時(shí),則采用這種模式。例如,一個(gè)對象需要在一個(gè)高代價(jià)的數據庫操作之后被創(chuàng )建。
echo,print( ),print_r( ),printf( ),sprintf( ),var_dump( )有什么區別?
echo :是語(yǔ)句不是函數,沒(méi)有返回值,可輸出多個(gè)變量值,不需要圓括號。不能輸出數組和對象,只能打印簡(jiǎn)單類(lèi)型(如int,string)
print :是語(yǔ)句不是函數,有返回值 1 ,只能輸出一個(gè)變量,不需要圓括號。不能輸出數組和對象,只能打印簡(jiǎn)單類(lèi)型(如int,string)。
print_r :是函數,可以打印復合類(lèi)型,例如:stirng、int、float、array、object等,輸出array時(shí)會(huì )用結構表示,而且可以通過(guò)print_r($str,true)來(lái)使print_r不輸出而返回print_r處理后的值
printf :是函數,把文字格式化以后輸出(參看C語(yǔ)言)
sprintf :是函數,跟printf相似,但不打印,而是返回格式化后的文字,其他的與printf一樣。
var_dump :函數,輸出變量的內容、類(lèi)型或字符串的內容、類(lèi)型、長(cháng)度。常用來(lái)調試。
MySQL數據庫存儲引擎有哪些?
MyISAM:成熟、穩定、易于管理,快速讀取。一些功能不支持(事務(wù)等),表級鎖。
InnoDB:支持事務(wù)、外鍵等特性、數據行鎖定?臻g占用大,不支持全文索引等。
POST和GET有什么區別?
GET是從服務(wù)器上獲取數據,POST是向服務(wù)器傳送數據
GET是通過(guò)發(fā)送HTTP協(xié)議通過(guò)URl參數傳遞進(jìn)行接收,而POST是實(shí)體數據,通過(guò)表單提交
GET傳送的數據量較小,不能大于2KB。POST傳送的數據量較大,一般被默認為不受限制。
GET安全性非常低,POST安全性較高
【初級PHP程序員面試經(jīng)驗分享】相關(guān)文章:
PHP大神分享面試技巧06-04
php程序員面試題03-20
面試華為HR經(jīng)驗分享07-19
2017年初級PHP程序員筆試題02-08
php程序員面試自我介紹01-18
php程序員面試題及答案04-06
高級php程序員面試題07-10
常見(jiàn)的PHP中級程序員面試題04-20