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