- 相關(guān)推薦
php工程師面試問(wèn)題
PHP開(kāi)發(fā)工程師面試題分享
1. 下列哪一句不能將'john'添加到數(shù)組$user? 答:BD
A. $user[] = 'john';
B. array_add($user, 'john');
C. array_push($user, 'john');
D. $user ||= 'john';
2. 比較sort(), asort(), ksort()三個(gè)函數(shù)的用法以及使用環(huán)境。
答:sort -- 將數(shù)組的值由a-z重排,并自動(dòng)替換索引從0...結(jié)束
asort --- 此函數(shù)將數(shù)組的元素由a-z重新排列,且保持原先索引值和元素的對(duì)應(yīng)關(guān)系,這個(gè)函數(shù)主要是用于
需要將數(shù)組的元素重新排列。這個(gè)函數(shù)比較常用。
ksort --- 此函數(shù)將數(shù)組依照索引值由a-z重新排列
例子:
對(duì)array('a'=>111, '9'=>"orange", 6=>2, "apple");排序。
sort則返回: Array ( [0] => apple [1] => orange [2] => 2 [3] => 111 )值由a-z重排,索引也變了。
asort則返回:Array ( [10] => apple [9] => orange [6] => 2 [a] => 111 )值由a-z重排,保持索引以應(yīng)
ksort則返回: Array ( [a] => 111 [6] => 2 [9] => orange [10] => apple )索引值由a-z重新排列,保持索
引以應(yīng)
3. 以下代碼輸出什么內(nèi)容, 為何。
$num = 10;
function foo(){
$num = $num * 10;
}
foo();
echo $num;
答:
結(jié)果為10.因?yàn)閒oo()中的$num是訪問(wèn)不到函數(shù)外的變量的。要想訪問(wèn)加上global $num;結(jié)果就成100了。
4. 引用和普通變量的區(qū)別。
答:普通變量是開(kāi)辟了一塊新的存儲(chǔ)空間,引用是直接指向其他的存儲(chǔ)空間。
如:
$num = 10;
function foo($num){
$num = $num * 10;
}
foo($num);
echo $num;
調(diào)foo($num);函數(shù)時(shí)以變量傳遞,則返回10;
如果改成引用傳遞,返回100;
$num = 10;
function foo(&$num){
$num = $num * 10;
}
foo($num);
echo $num;
5. 加載類庫(kù)的方法。
答:
function __autoload($class){
require_once("./lib/".$class.'.php');
}
6. foo()和@foo()的區(qū)別。
答:加上@符號(hào)會(huì)屏蔽報(bào)錯(cuò)提示。
如下:
$num = 10;
function foo(&$num){
$num = $num / 0;
}
foo($num);
echo $num;
大家都知道除數(shù)不能為0。如果加上@符號(hào)后就沒(méi)有Warning: Division by zero
7. 你平時(shí)如何調(diào)試PHP代碼。
答:用echo打出調(diào)試或用exit調(diào)試。再加上火狐瀏覽器調(diào)。
8. === 的作用是什么?舉一個(gè)例子,使用 == 返回true,但是使用 === 返回false。
答:=== 的作用是比較變量的值還比較變量的類型。==只比較值。
如下:
$str = '111';
if($str==111){//如果改成===則返回"失敗了";
echo "成功了";
}else{
echo "失敗了";
}
9. 聲明一個(gè)不含方法和屬性的類。
答:class Db {}
10. 創(chuàng)建一個(gè)對(duì)象myclass的實(shí)例。
答:$db = new myclass();
11. 從類的內(nèi)部訪問(wèn)或者設(shè)置屬性。
答:
class DB{
private $username; //用戶名
private $userpwd; //密碼
public function test(){
$this->username='root';//給變量賦值
self::test2();//相當(dāng)于$this->test2();//調(diào)用本類test2方法
//parent::test2();這樣的話就調(diào)用了父類的test2方法
}
public function test2(){
}
}
12. include與include_once的區(qū)別和聯(lián)系,以及include與require的區(qū)別和聯(lián)系。
答:include與include_once區(qū)別是:用include_once如果該文件中的代碼已經(jīng)被包含了,則不會(huì)再次包含。如同此語(yǔ)句名字暗示的那樣,只會(huì)包含一次。
include() 產(chǎn)生一個(gè)警告而 require() 則導(dǎo)致一個(gè)致命錯(cuò)誤。換句話說(shuō),如果想在遇到丟失文件時(shí)停止處理頁(yè)面就用 require()。include() 就不是這樣,腳本會(huì)繼續(xù)運(yùn)行。
13. 使用什么函數(shù)重定向?yàn)g覽器請(qǐng)求。
答:header("Location: http://hi.baidu.com/woaidelphi/blog");
14. 打開(kāi)一個(gè)文件供讀寫(xiě)。
答:fopen("d:/test.txt","r+");//r+讀寫(xiě)方式打開(kāi),將文件指針指向文件頭。'w+'讀寫(xiě)方式打開(kāi),將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建之。 'a+'讀寫(xiě)方式打開(kāi),將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之
15. mysql_fetch_row和mysql_fetch_array的區(qū)別。
答:mysql_fetch_row -- 從結(jié)果集中取得一行作為枚舉數(shù)組
mysql_fetch_array -- 從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,或二者兼有 //MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH
16. 一個(gè)ereg_replace的理解。里面涉及正則捕捉和引用。
答:ereg_replace -- 替換正則表達(dá)式
string ereg_replace ( string pattern, string replacement, string string )
本函數(shù)在 string 中掃描與 pattern 匹配的部分,并將其替換為 replacement。
返回替換后的字符串。
“里面涉及正則捕捉和引用。”這句話不懂。
17. 寫(xiě)一個(gè)正則表達(dá)式,過(guò)濾所有的HTML代碼。
如下:
$str = "大家好< /b>一起學(xué)習(xí)。共同進(jìn)步。";
echo preg_replace("/<[^>]+>/i",'',$str);
18. 比較PHP與Perl的array和hash
答:http://hi.baidu.com/sujun/blog/item/85a4c8131c06432bdd54010b.html上面寫(xiě)的很好。
19. How to get around stateless nature of HTTP using PHP ? (我理解錯(cuò)誤)
答:呵呵,不知。
20. GD是用來(lái)做什么的。
答:GD庫(kù)是用來(lái)做圖的。比如可以做驗(yàn)證碼。
21. 用PHP寫(xiě)出幾個(gè)方法用來(lái)輸出HTML代碼塊。
highlight_file('demo.html');
22. Is PHP better than Perl? Discuss.
如何面試PHP工程師?
問(wèn)一些日常的正常的PHP問(wèn)題,主要是考察應(yīng)聘者的認(rèn)知:
一個(gè)包含中英文的字符串如何獲得它的自然長(zhǎng)度(看看ta是否有encoding的知識(shí)和意識(shí))
問(wèn)一問(wèn)什么是ORM,有時(shí)候會(huì)問(wèn)這個(gè)詞的英文全稱是什么,問(wèn)問(wèn)ta對(duì)于ORM有什么個(gè)人的看法?(看看ta學(xué)習(xí)細(xì)不細(xì),有沒(méi)有技術(shù)判斷,PHP開(kāi)發(fā)人員應(yīng)該知道什么時(shí)候使用ORM)
問(wèn)一問(wèn)假如ta要自己去實(shí)現(xiàn)一個(gè)framework,ta會(huì)怎么設(shè)計(jì)。(看看ta對(duì)代碼架構(gòu)的理解,對(duì)MVC的理解)
問(wèn)一問(wèn)framework設(shè)計(jì)里的url dispatcher他會(huì)怎么考慮。(HTTP知識(shí))
問(wèn)一問(wèn)ta對(duì)框架本身的看法
了解一下ta對(duì)Design Pattern的認(rèn)知,比如Singleton,Observer,F(xiàn)actory等常用的設(shè)計(jì)模式,問(wèn)一問(wèn)ta對(duì)設(shè)計(jì)模式本身的看法。
問(wèn)兩三個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的問(wèn)題
問(wèn)幾個(gè)前端的問(wèn)題,哪怕ta的職位是PHP開(kāi)發(fā)人員,好的PHP人員不可能不了解前端,而且很可能很了解前端
問(wèn)一問(wèn)ta對(duì)noSQL的了解情況(對(duì)與noSQL的認(rèn)識(shí)是和傳統(tǒng)Relational DB的認(rèn)知是分不開(kāi)的)
問(wèn)一問(wèn)ta碰到問(wèn)題時(shí)候會(huì)如何去尋找答案
問(wèn)一問(wèn)ta習(xí)慣使用哪一個(gè)搜索引擎
問(wèn)一問(wèn)ta最近看的書(shū)
問(wèn)一問(wèn)ta的職業(yè)規(guī)劃,喜歡做什么,對(duì)工作環(huán)境有什么要求
【php工程師面試問(wèn)題】相關(guān)文章:
關(guān)于PHP慢速日志的問(wèn)題分析06-22
工程師崗位面試問(wèn)題12-12
pcb工程師面試問(wèn)題11-27
php工程師簡(jiǎn)歷模板05-19
網(wǎng)絡(luò)工程師面試問(wèn)題07-06
php工程師崗位職責(zé)11-15
PHP開(kāi)發(fā)工程師崗位的職責(zé)06-14
php面試自我介紹范文10-26
關(guān)于PHP面試題的分享11-20