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