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