公司招人做php,讓我面試一把,平生第一次面試別人,20分鐘內準備了下面一些面試題目,分享一下。如果全部都很熟悉,說明基本具備了php開發的中等水平,一般可以去面試所謂的高級php開發工程師這個職位。
沒有包含css,xml等的知識,也沒有包含網絡技術方面的知識,僅僅是php,javascript。
1:寫php有幾年了?php名字是什么意思?personal home page
2:熟悉javascript嗎? ajax(Asynchronous javascript and XML)是什么東西,有什么作用?能簡單說一下google地圖的原理嗎?
3 firefox用嗎?通常有開發相關的插件?如何調試javascript?
4:熟悉什么javascript 框架?jquery聽說過嗎?是干什么的?一個div,class是”aa bb cc”,id是”nodesView”,那么如何得到這個div的jquery對象?而直接獲得這個div的dom對象,如何取得?dom對象如何轉化為jquery對象?
---------
dom對象如何轉化為jquery對象
普通的dom對象一般可以通過$()轉換成jquery對象。
如:$(document.getElementById(“msg”))則為jquery對象,可以使用jquery的方法。
由于jquery對象本身是一個集合。所以如果jquery對象要轉換為dom對象則必須取出其中的某一項,一般可通過索引取出。
如:$(“#msg”)[0],$(“div”).eq(1)[0],$(“div”).get()[1],$(“td”)[5]這些都是dom對象,可以使用dom中的方法,但不能再使用Jquery的方法。
以下幾種寫法都是正確的: 字串8$(“#msg”).html();
$(“#msg”)[0].innerHTML;
$(“#msg”).eq(0)[0].innerHTML;
$(“#msg”).get(0).innerHTML;
-------
5 關于瀏覽器交互流程:頁面一個表單,action是什么意思?method是什么意思?如果method是get,一個表單的數據會如何傳到服務器上?如果服務器上腳本是php,那么php如何獲得這個表單的數據?post呢?6 php連接數據庫方法常用的幾種?pdo熟悉嗎?如果一個查詢里面有一些篩選,也就是where后面的一些參數,要如何綁定上去?
7 php單引號和雙引號的區別?
有$a = 1那么echo “‘$a’”是什么?
有$b = array(’1′,’2′,’3′)
那么 echo “‘$b[1]‘”?該怎么寫能輸出第一個元素的內容?8 如何獲得當前腳本的名字(路徑)?
$_SERVER['PHP_SELF'];9 如何判斷數組里面有沒有某個元素,比如判斷$a = array()里面有沒有鍵method ?
isset($a['method']),array_key_exists(‘method’,$a)10 面向對象
對象有兩個方面:成員變量 和方法。在編譯語言(例如 Java)中,如果想調用不存在的方法或引用不存在的成員變量,會得到編譯時錯誤。但是,在非編譯語言,例如 PHP 中,會發生什么?
在 PHP 中的方法調用是這樣工作的。首先,PHP 解釋器在類上查找方法。如果方法存在,PHP 就調用它。如果沒有,那么就調用類上的魔法方法 __call(如果這個方法存在的話)。如果 __call 失敗,就調用父類方法,依此類推。
魔法方法
魔法方法是有特定名稱的方法,PHP 解釋器在腳本執行的特定點上會查找魔法方法。最常見的魔法方法就是對象創始時調用的構造函數。__call 方法有兩個參數:被請求的方法的名稱和方法參數。如果創建的 __call 方法接受這兩個參數,執行某項功能,然后返回 TRUE,那么調用這個對象的代碼就永遠不會知道在有代碼的方法和 __call 機制處理的方法之間的區別。通過這種方式,可以創建這樣的對象,即動態地模擬擁有無數方法的情況。
除了 __call 方法,其他魔法方法 —— 包括 __get 和 __set —— 調用它們的時候,都是因為引用了不存在的實例變量。腦子里有了這個概念之后,就可以開始編寫能夠適應任何表的動態數據庫訪問類了。
11 mvc是什么東西?有什么優缺點?熟悉php框架嗎?熟悉php模板嗎?smarty!
12 知名的php cms,能說幾個嗎?
13 說出幾個linux發行版?最常用哪個?為什么喜歡用這個發行版?包管理工具是什么?