1. 程式人生 > >LexisNexis(律商聯訊)最新面試題

LexisNexis(律商聯訊)最新面試題

律商聯訊PHP開發工程師面試題

關於律商聯訊

律商聯訊(LexisNexis®)是世界領先的法律、新聞和商業資訊服務解決方案提供商,其旗艦產品包括基於網路的Lexis®和Nexis®資訊服務,此服務主要面向法律,風險管理,企業,政府,會計和學術領域內的專業人士。作為勵德愛思唯爾集團旗下的子公司,律商聯訊在全球100多個國家設有營業機構,擁有員工13,000名。
律商聯訊目前在國內設有北京和上海辦事機構,向用戶提供廣泛的產品和服務,其中包括律商聯訊中文資訊網(research.lexisnexis.com.cn),律商聯訊律師搜尋網(findalawyer.cn),Lexis.com,Nexis.com,律商聯訊學術大全、環境大全、統計大全和國會大全,進口法律書刊,法律會議和培訓等。港澳臺地區有近100所大學選擇了律商聯訊,中國大陸已有100多所大學成為律商聯訊的使用者。

面試注意:

1. 個人履歷表是全英文的,所以你應該能看懂英文簡歷常見用語(注意縮寫)。可以用中文填寫。
2. PHP面試題全部英文的,所以你應該能夠看得明白問題。

面試過程:

1. 填寫個人履歷
2. PHP面試題目作答
3. 考官面試(一男一女,男的是技術部門的,女的是人力資源部的)

面試題目:

注意:原題是英文的,本人根據自己的意思來理解的。

1. 下列哪一句不能將’john’新增到陣列$user?

A. $user[] = ‘john’;

B. array_add($user, ‘john’);

C. array_push($user, ‘john’);

D. $user ||= ‘john’;

2. 比較sort(), assort(), ksort()三個函式的用法以及使用環境。

3. 以下程式碼輸出什麼內容, 為何。

$num = 10;
function foo(){
$num = $num * 10;
}
foo();
echo $num;

4. 引用和普通變數的區別。

5. 載入類庫的方法。

6. foo()和@foo()的區別。

7. 你平時如何除錯PHP程式碼。

8. === 的作用是什麼?舉一個例子,使用 == 返回true,但是使用 === 返回false。

9. 宣告一個不含方法和屬性的類。

10. 建立一個物件myclass的例項。

11. 從類的內部訪問或者設定屬性。

12. include與include_once的區別和聯絡,以及include與require的區別和聯絡。

13. 使用什麼函式重定向瀏覽器請求。

14. 開啟一個檔案供讀寫。

15. mysql_fetch_row和mysql_fetch_array的區別。

16. 一個ereg_replace的理解。裡面涉及正則捕捉和引用。

17. 寫一個正則表示式,過濾所有的HTML程式碼。

18. 比較PHP與Perl的array和hash

19. How to get around stateless nature of HTTP using PHP ? (我理解錯誤)

20. GD是用來做什麼的。

21. 用PHP寫出幾個方法用來輸出HTML程式碼塊。

22. Is PHP better than Perl? Discuss.

考官現場提問:

1. 工作經歷,工作職責,上一家公司的情況(女考官)。

2. 使用PHP多長時間?精通哪一塊?

3. 使用MySQL多長時間?精通哪一塊?

4. 比較MySQL的兩種常用引擎的區別(MyIsAm和InnoDB)。

5. 從各種角度優化以下SQL語句:SELECT * FROM tablename WHERE id IN (13, 15, 18, 19) and age=21 ORDER BY address DESC

6. 是否瞭解XML?講一下格式規範。

7. 是否使用PHP解析過XML檔案?使用的什麼方法?該方法使用的是什麼API?(沒有聽懂後面半句是什麼意思)

8. 寫一個正則表示式

9. 一個3k+1陣列,k為非負整數,請問從1乘到7000,結果的末尾會包含多少個0?

網友的回答:


1.

以下哪一句不會把 John 新增到 users 陣列?
$users[] = ‘john’;
成功把 John 新增到陣列 users。
array_add($users,’john’);
函式 array_add() 無定義。
array_push($users,‘john’);
成功把 John 新增到陣列 users。
$users ||= ‘john’;
語法錯誤。
sort()、assort()、和 ksort() 有什麼分別?它們分別在什麼情況下使用?
sort()
根據陣列中元素的值,以英文字母順序排序,索引鍵會由 0 到 n-1 重新編號。主要是當陣列索引鍵的值無關疼癢時用來把陣列排序。
assort()
PHP 沒有 assort() 函式,所以可能是 asort() 的筆誤。
asort()
與 sort() 一樣把陣列的元素按英文字母順序來排列,不同的是所有索引鍵都獲得保留,特別適合替聯想陣列排序。
ksort()
根據陣列中索引鍵的值,以英文字母順序排序,特別適合用於希望把索引鍵排序的聯想陣列。
以下的程式碼會產生什麼?為什麼?
$num = 10;
function multiply(){
$num = $num * 10;
}
multiply();
echo $num;
由於函式 multiply() 沒有指定 $num 為全域變數(例如 global $num 或者 $_GLOBALS[‘num’]),所以 $num 的值是 10。
一個 reference 跟一個正規的變數有什麼分別?如何 pass by reference?在什麼情況下我們需要這樣做?
Reference 傳送的是變數的地址而非它的值,所以在函式中改變一個變數的值時,整個應用都見到這個變數的新值。
一個正規變數傳送給函式的是它的值,當函式改變這個變數的值時,只有這個函式才見到新值,應用的其他部分仍然見到舊值。
$myVariable = "its’ value";
Myfunction(&$myVariable); // 以 reference 傳送引數
以 reference 傳送引數給函式,可以使函式改變了的變數,即使在函式結束後仍然保留新值。
哪一些函式可以用來在現正執行的指令碼中插入函式庫?
對這道題目不同的理解會有不同的答案,我的第一個想法是插入 PHP 函式庫不外乎 include()、include_once()、require()、require_once(),但細心再想,「函式庫」也應該包括 com 物件和 .net 函式庫,所以我們的答案也要分別包括 com_load 和 dotnet_load,下次有人提起「函式庫」的時候,別忘記這兩個函式
foo() 與 @foo() 有什麼分別?
foo() 會執行這個函式,任何解譯錯誤、語法錯誤、執行錯誤都會在頁面上顯示出來。
@foo() 在執行這個函式時,會隱藏所有上述的錯誤訊息。
很多應用程式都使用 @mysql_connect() 和 @mysql_query 來隱藏 mysql 的錯誤訊息,我認為這是很嚴重的失誤,因為錯誤不該被隱藏,你必須妥善處理它們,可能的話解決它們。
你如何替 PHP 的應用程式偵錯?
我並不常這樣做,我曾經試過很多不同的偵錯工具,在 Linux 系統中設定這些工具一點也不容易。不過以下我會介紹一個近來頗受注目的偵錯工具。
PHP – Advanced PHP Debugger 或稱 PHP – APD,第一步是執行以下的指令安裝:
pear install apd
安裝後在你的指令碼的開頭位置加入以下的語句開始進行偵錯:
apd_set_pprof_trace();
執行完畢,開啟以下檔案來查閱執行日誌:
apd.dumpdir
你也可以使用 pprofp 來格式化日誌。
詳細的資料可以參閱 http://us.php.net/manual/en/ref.apd.php。
「===」是什麼?試舉一個「==」是真但「===」是假的例子。
「===」是給既可以送回布林值「假」,也可以送回一個不是布林值但卻可以賦與「假」值的函式,strpos() 和 strrpos() 便是其中兩個例子。
問題的第二部份有點困難,想一個「==」是假,但是「===」是真的例子卻很容易,相反的例子卻很少。但我終於找到以下的例子:
if (strpos("abc", "a") == true)
{
// 這部分永不會被執行,因為 "a" 的位置是 0,換算成布林值「假」
}
if (strpos("abc", "a") === true)
{
// 這部份會被執行,因為「===」保證函式 strpos() 的送回值不會換算成布林值.
}
你會如何定義一個沒有成員函式或特性的類別 myclass?
class myclass
{
}
你如何產生一個 myclass 的物件?
$obj = new myclass();
沒有比這個更簡單的了。

2.

1. 下列哪一句不能將’john’新增到陣列$user?

A. $user[] = ‘john’;

B. array_add($user, ‘john’);

C. array_push($user, ‘john’);

D. $user ||= ‘john’; //這句

2. 比較sort(), assort(), ksort()三個函式的用法以及使用環境。
//排序 沒怎麼了解.
3. 以下程式碼輸出什麼內容, 為何。

$num = 10;
function foo(){
$num = $num * 10;
}
foo();
echo $num;
//10

4. 引用和普通變數的區別。
//記憶體地址記錄
5. 載入類庫的方法。
//__autoload()
6. foo()和@foo()的區別。
// 遮蔽錯誤
7. 你平時如何除錯PHP程式碼。
//用瀏覽器
8. === 的作用是什麼?舉一個例子,使用 == 返回true,但是使用 === 返回false。
//量等. $a = ‘1’ $a ===1 false $a == 1 true
9. 宣告一個不含方法和屬性的類。
class cls{}
10. 建立一個物件myclass的例項。
new cls()
11. 從類的內部訪問或者設定屬性。
class cls{
function cls(){
$this->name = ‘abc’;
}
}
12. include與include_once的區別和聯絡,以及include與require的區別和聯絡。
//迴圈中僅引入一次或者多次. 錯誤報級別
13. 使用什麼函式重定向瀏覽器請求。

14. 開啟一個檔案供讀寫。
//fopen
15. mysql_fetch_row和mysql_fetch_array的區別。
//數字鍵名, 與關連鍵名
16. 一個ereg_replace的理解。裡面涉及正則捕捉和引用。
//正則替換.
17. 寫一個正則表示式,過濾所有的HTML程式碼。
//正則不爽.
18. 比較PHP與Perl的array和hash
//不懂.
19. How to get around stateless nature of HTTP using PHP ? (我理解錯誤)
//http協議?
20. GD是用來做什麼的。
//處理圖片的.
21. 用PHP寫出幾個方法用來輸出HTML程式碼塊。
//htmlentities()
22. Is PHP better than Perl? Discuss.

考官現場提問:

1. 工作經歷,工作職責,上一家公司的情況(女考官)。
上一家公司在我的程式碼領導下,已經被奧巴馬定為指定程式碼生產商了.
2. 使用PHP多長時間?精通哪一塊?
一年, php基礎
3. 使用MySQL多長時間?精通哪一塊?
一年,查詢
4. 比較MySQL的兩種常用引擎的區別(MyIsAm和InnoDB)。
事務處理
5. 從各種角度優化以下SQL語句:SELECT * FROM tablename WHERE id IN (13, 15, 18, 19) and age=21 ORDER BY address DESC
//慢慢講.
6. 是否瞭解XML?講一下格式規範。
不瞭解
7. 是否使用PHP解析過XML檔案?使用的什麼方法?該方法使用的是什麼API?(沒有聽懂後面半句是什麼意思)
xml類
8. 寫一個正則表示式
eregi(‘[0-9]+’,$str)
9. 一個3k+1陣列,k為非負整數,請問從1乘到7000,結果的末尾會包含多少個0?

1234567891011 <?phpfor($i=0,$j=0,$k=1,$x=0;$x<=7000;$i++){$x=3*$i+1;$k*=$x;while($k%10==0){$k/=10;$j++;}}echo$j;?>