Ⅰ php應聘筆試題
題目一:
<?php
echo -10%3;
?>
答案:-1。
考查:優先順序。因為-的優先順序比%求余的優先順序低,也就是-(10%3)。
題目二:
print (int)pow(2,32);
答案:0
題目三:
//file1.php
<?php
$a = '123';
?>
//file2.php
<?php
echo include('file1.php');
?>
答案:1.
考查:返回值。因include()也是一個函數,有返回值。在成功時返回1,失敗時返回錯誤信息。如果被包含的文件有return,則inculde()成功時返回該文件的`返回值。
題目四:
<?php
$count = 5;
function get_count() {
static $count = 0;
return $count++;
}
++$count;
get_count();
echo get_count();
?>
答案:1.
考查:static和++。因static $count,所以只在第一次調用get_count的時候對$count賦值為0,第二次再進來這個函數,則不會第二次賦值。其次就是return $count++和return ++$count了,前者先返回,後者先++再返回。
題目五:
<?php
$arr= array(0 =>1,'aa' =>2,3,4);
foreach($arr as $key => $val){
print($key == 'aa' ? 5 : $val);
}
?>
答案:5534.
考查:類型轉換。因遍歷數組第一次的時候,$key和aa的比較實際就是0和aa的比較,一個是int一個是string,這個時候會轉換類型,將字元串轉換為數字再與數字比較。所以0=='aa'就是0==0,所以為true,也就是輸出5。雖然PHP是若類型語言,但是人家也有類型的好嗎。
題目六:
<?php
echo count (false);
$a = count ("567") + count(null)
+ count(false);
echo $a;
?>
答案:2.
考查:count的用法。
因count()的官方解釋「If the parameter
is not an array or not an object
with implemented Countable
interface, 1 will be returned.」.意思是說,如果不是數組或者對象的其他類型,返回1.那麼這個值應該就是1+0+1了(boolen人家也是一個類型,雖然是討厭的false)。NULL的意思是沒有值,難道在計數函數中還能有1?
題目七:
<?php
$arr = array(1,2,3);
foreach($arr as &$val) {
$val += $val % 2 ? $val++ : $val--;
}
$val = 0;
print(join('',$arr));
?>
答案:330。
考查:++和&。
因foreach結束後的數組應該是array(3,3,7);最後給第三個元素賦值為0,所以就是330了。其中注意的是&,如果有&則是對原變數操作,如果沒有,則是先生成一個新變數,然後給這個變數復制,最後操作的是這個新變數。
題目八:
<?php
echo intval((0.1+0.7)*10);
?>
答案:7。
考查:浮點數的概念。
因0.1+0.7=0.8 0.8*10=8 所以轉換成整數後還是8?錯!因為0.1+0.7=0.8是浮點數,0.8*10在數學計算中是正整數8,可是在計算機中它仍然是浮點數8,什麼叫浮點數8?每一個看起來像整數的浮點數,其實都不是整數,比如這個8,它其實只是
7.9999循環,無限接近於8,轉換成整數會舍棄小數部分,就是7嘍。
題目九:
<?php
ini_set('display_errors',0);
$arr = array(1=>1,3=>3);
$i = 2;
$a = 'test' . isset($arr[$i]) ?
$arr[$i] : $i;
請問$a的值是什麼?
A、test B、NULL C、2 D、test2
?>
答案:B。
考查:優先順序因「."的優先順序高於三元運算符"?:"。所以程序其實報錯了。會說$arr的索引2不存在。
題目十:
<?php
$a = 3;
$b = 5;
if($a = 5 || $b = 7) {
$a++;
$b++;
}
echo $a . " " . $b;
?>
A、6 8 B、6 6 C、2 6 D、1 6 E、4 6
答案:D。
考查:優先順序,基礎概念,++。因「="的優先順序低於「||」,所以先邏輯判斷再賦值。也就是($a = (5 || $b = 7))。所以,最後其實給a賦值了,$a等於1.
Ⅱ 微創筆試,一面,二面全過程
微創筆試,一面,二面全過程 (2006)
先介紹一下自己,我是交大計算機系應屆本科畢業生,主ID是php,因為比較喜歡本專業吧,找工作的目標就是純技術類的。這次微創投的是軟體開發工程師。
筆試:時間記不清楚了,黃浦區圖書館
兩道HTML選擇題目,sigh我居然全錯了,打擊得不得了,簡歷上面也不敢寫精通B/S了…
兩道編程題目,第一道忘了,用到函數遞歸調用就能解決了。第二道用到回溯法。雖然演算法不難,但是在短時間寫出來也不太容易,而且試卷上的空餘地方很少,最好不要寫錯。我就是用聯想宣講會發的那隻又黑又粗的綠筆,寫成了一團。
然後又一道SQL的題目T-SQL我不太會寫,就用PL/SQL寫了,反正功能是實現了,以至於後來面面試我的時候還特意確認了這一點。
接下來就是英語了,幾道選擇填空,難度和高中英語差不多,然後一道問你有什麼職業規劃。
就這些差不多了,過的時間久了記不太清楚了。
第一次面試:12月15日,外灘中心21樓
外灘中心還要掛牌才能進,微創裡面和微軟裡面的布局基本完全一樣,包括牆面的色調,桌子大小什麼的……電梯挺氣派的.,真是見世面了,上面好像還有DTT和HP,恩,MM一定不少的…
第一輪在一個大房間裡面,好多個組在面試,面我的有兩個人,具體無非是自我介紹,做過項目什麼的。我的簡歷上面提及了很多Web方面的東西,估計比較對他的胃口,問了一些細節和大體的實現,我就講了講什麼B/S中的兩層三層各自的特點,以及對比PHP說說ASP.net的優勢雲雲。介紹一下開發的PHP Open Source項目…最後他拿出一張紙,讓我寫個程序:int a[10]隨機放入0-9的數字(可以重復),編程序按順序挑出5個使組成的5位數最大,注意順序不能變的。我寫好了給他講一遍,沒什麼問題,第一輪就這樣OK了,讓我在外面等。
等了十多分鍾,第二輪。在正對門的會議室裡面。這次是一個人了,還是那套項目經歷等等。期間好像有個經典的SQL Server問題就是如何實現分段Select,回答出來了讓他很滿意。還問了問DWORD是什麼東西,最後又是拿出一張紙…說60000個數,每個都介於1和65535之間不重復,需要編一個函數用最小時間復雜度取得一個同樣介於1和65535,但是不在那60000個數中的數。在最小時間復雜度的情況下還要最小空間復雜度。答案我就不詳細說了,不過最小空間復雜度部分還是有點難度的,用到移位的操作什麼的,反正寫了整整一張A4,又講了半天。還好也寫得不錯,然後他也點點頭說當天的面試就完了,讓我回來等。
總之前面兩輪偏於技術。且兩個程序都要寫出具體C代碼,不許用已有的類庫。
第二次面試:12月22日,就是今天,外灘中心21樓
第一輪,大概是一個PM類型的人了,還是問了一下做過的項目…然後對我說剛剛看過我簡歷上的個人網站,說非常好…寒啊,我說那更新日期都是2002年的了,而且上面都是無聊的YY……居然被誇獎…(其實心裡也很得意的)。又問了一下做過這么多項目中最困難的是什麼,我說技術上沒什麼困難,困難的就是時間控制等等軟體工程方面的。這一輪的技術方面偏於籠統架構,概念,很快也就結束了。被告之等晚上六點下一輪副總面試。
出去南京路逛了一會商場,發現MM真多啊,大飽眼福一番,而後吃了大娘水餃5點多就回去了。這一等就是等到快七點,到了副總辦公室,這位副總先生還是非常kind的,感覺非常平易近人,進來先熱情的和我握手,並且自我介紹一番。好感動啊,不象某些XX公司,地方不大架子還不小。進入正題,其實就是隨便聊聊。問我有沒有做過動網論壇之類的東西,sigh,動網論壇那幾個開發者都是我好朋友的…非常熟悉,又把我那個PHP Open Source BBS吹了一番。他好像很驚訝的,又問了下我簡歷上面寫了在CSDN當過XXXX,XXXX板板主……頭一次有人在乎我這個,還有MCSE,CCNA之類的…也是頭一次有人在乎…感覺受寵若驚阿。後來他說我表現還好,說比較喜歡我這種直爽的人,還說搞技術的就應該這樣。又問了我今後的職業規劃,我就隨便說說。這一輪也就結束了,確認完
我什麼時候能來實習,又起身熱情的和我握手,這位副總真的要贊一下的!給人感覺非常好!
總之後兩輪偏於籠統的架構理解以及個人性格。
回到寢室開始寫這個,終於寫完了,希望對明後天去面試的兄弟們有點幫助。其中表達多有不通(大學語文不及格的後果),見笑。
;
Ⅲ 誰能告訴我一些PHP開發常見的面試題呢
1、表單提交get和post有何區別?
答:get的方式是把數據在地址欄中發送,get傳送的數據量較小,不能大於2KB。post傳送的數據量較大,一般被默認為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
2、用PHP列印出前一天的時間格式是2006-5-1022:21:21
復制代碼代碼示例:
echo date("Y-m-dH:i:s",time()-(3600*24));或echodate("Y-m-d H:i:s",strtotime("-1 day"));
3、php中include和require的區別?
這兩種結構除了在如何處理失敗之外完全一樣。include()產生一個警告而 require() 則導致一個致命錯誤。換句話說,如果你想在遇到丟失文件時停止處理頁面就用 require()。include() 就不是這樣,腳本會繼續運行。
4、echo(),print(),print_r()的區別
echo可以接多個參數,print只能接一個參數,它們都是PHP的語言結構,print_r是遞規列印,用來列印數組或對象
5、能夠使HTML和PHP分離開使用的模板
smarty,phplib,SmartTemplate
6、如何理解MVC模式?
首先說一下框架,框架:就是別人把一些底層,常用操作.比如數據操作(增,刪,改,查)寫好.你來直接用.其它的功能要自己來做。
MVC:設計模式,M模型,V顯示,C控制.現在許多框架都是基於MVC來做的把邏輯和顯示分開.比如你要換頁面,只需要改V裡面的東西並不需要再去變動程序!(詳細的東西可以上網上查一下)
7、如何實現PHP、JSP交互?
PHP提供了支持JAVA的類庫文件,或者通過HTTP協議來交互數據
8、使用哪些工具進行版本控制?
VSS,CVS,SVN
http://www.jbxue.com/php/25446.html