1. 程式人生 > 其它 >php面試常見問題

php面試常見問題

1. 你為什麼選擇PHP?

       第一、和其他語言相比, 相對學習容易,入門快, 學習週期短。

       第二、企業意識到PHP的開發成本低,使用PHP開發的專案越來越多, 所以用人企業越來越多,很少有大學開這門課,就業機會也就很大。

       第三、PHP開發速度快,可用的二次開發產品多, 能快速實現業務流程。

       第四、我喜歡網際網路, 網際網路現在主流開發語言都使用PHP

 

 2. 說說對PHP技術發展的看法?

       第一、語言本身的發展上,PHP從5版本之後將面向過程轉變到面向物件思想方面,做出過一次重大的改變, PHP以後的技術方展,除了在基本語法上保持開發高效之外,需要將部分模組不段升級和優化。 也要從執行效率上有大的提高,以及多提供一些針對不同企業擴充套件的第三方類庫進行豐富。

 

       第二、PHP語言上的應用發展,PHP最大特點就是語法靈活,開發速度快, 開發成本低,最適合開發業務流程,所以互聯中使用PHP開發動態網站將成為主流。

      

3. 你對PHP程式設計師這個職位的認識?

    一、對專案經理負責,負責軟體專案的詳細設計、編碼和內部測試的組織實施,對 小型軟體專案兼任系統分析工作,完成分配專案的實施和技術支援工作。

   二、協助專案經理和相關人員同客戶進行溝通,保持良好的客戶關係。

  三、參與需求調研、專案可行性分析、技術可行性分析和需求分析。

  四、熟悉並熟練掌握交付軟體部開發的軟體專案的相關軟體技術。

  五、負責向專案經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。

  六、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝除錯、資料割接、使用者培訓和專案推廣。

  七、負責相關技術文件的擬訂。

  八、負責對業務領域內的技術發展動態。

 

4. 說說對網際網路行業發展的看法?

 

   中國已經成為國際網際網路的一部分,並且將會成為最大的網際網路使用者群體。但是也有一些問題,比如發展過於迅猛導致的客戶體驗好評不足,小型的網際網路企業缺失競爭力,還有模仿外國網站的現象,這都能說明我國網際網路的道路還有很多待改進的地方。

       1.網際網路全球普及

       2.網際網路將成為物聯網

       3.網際網路將成為無線網路, 移動互聯或變為主流

       4.社交網路的巔峰

       5.網際網路變得越來越輕, 意味著輕量、輕鬆、輕快、輕簡、傻瓜化、碎片化,主要有四個方面。

       6.大資料時代

       7.雲端計算大行其道

 

 5.  說說PHP、Java的不同之處?        

       開發速度: PHP 要快 Java 3.5倍以上

       執行速度: PHP 要慢 Java 盡20倍

       軟體成本: PHP 低於 Java 三分之一左右

       開發範圍: PHP 的特長是在Web方面, 而Java有多個版本 SE EE ME幾呼可以開發所有領域, 也可以在android上開發

      

 6. 說說Laravel和ThinkPHP的區別?

      

       TP框架:

ThinkPHP簡單、快速,基於MVC和麵向物件,易用性較高,是一款簡潔實用的輕量級框架。

Laravel框架:

Lavavel一直秉承著優雅的原則,很好的支援了composer,實現了更豐富的擴充套件,社群文件活躍,相較於TP,Lavavel更龐大,安全性也更高,更適合開發大中型專案,被稱為“巨匠型開發框架”。

TP框架和Laravel框架的區別:

1、提交資料的方式

Laravel在提交表單時需要在表單中加入{csrf_field}來防止跨域攻擊,而TP不會。

2、路由

Laravel必須先定義,再使用,路由檔案為routes.php;TP在配置檔案中開啟路由後,路由格式是:'路由表示式' => '路由地址和引數'(使用路由的前提是URL支援phthinfo並且開啟路由),路由可以使URL更符合SEO。

3、渲染模版方式
在Laravel框架裡,使用return view()來渲染模版;而ThinkPHP裡則使用了$this->display()的方式渲染模版。

4、操作資料庫方式

都可以使用例項化(建立相對應的模型類)和DB:table('表名')來操作資料庫,使用原生查詢時不太相同,Laravel使用Db::操作('原生sql'),TP使用Db::query('原生sql')。

5、條件判斷語句書寫方式

Laravel框架裡 if else判斷語句和foreach語句 書寫時必須以@if開頭 以@endif結尾,如果沒有則報語法錯誤,@foreach @endforeach同理。

而TP框架則和PHP語法規則使用方式一致直接ifesle語句判斷和foreach迴圈遍歷

6、中介軟體,Laravel特點,可以實現訪問前後的處理,例如請求和返回,許可權認證等;

7、Laravel升級十分簡易,而TP大版本的升級要重構程式碼。

      

 

 7. 你對Smarty模板的認識?

       雖然PHP語言本身就可以嵌入到HTML頁面中去進行資料展現,但是這樣做我們不僅需要書寫大量的<?php ?>標籤,而且在某些地方還需要嵌入大量的冗餘程式碼,另外也不利於邏輯的解耦和分離。所以,在專案中我們還是需要一個專門的模板引擎,而Smarty就是PHP語言在這個領域的不二選擇了。

       1. 可以將檢視和邏輯分開

       2. 可以將美工和程式設計師分開

       3. 可以是一個邏輯多種表現(為一個程式寫多個模板)

       4. 改模板或改邏輯可以互不影響

      

8. 對資料庫的認識和理解?

       資料庫是用來存放資料的,你可以通過SQL查詢語言對資料庫中的資料進行篩選和處理, 是一套獨立的資料管理系統。

       1. 使用PHP開發動態網站,離不開資料庫, PHP作為客戶端通過執行SQL語句來完成對資料庫中的資料操作。

       2. 程式設計師學習資料庫,主要包括設計庫,設計表,建立表語句, 對錶內容的操作, SQL語句的優化, 大數量(分庫分表分割槽,主從等)

      

 9.說說你對你的專案的認識?

       1. 從專案的業務分析上

       2. 從專案的規模上

       3. 從專案的人員合作上

       4. 從專案的市場應用及創意上

       5. 從專案用到的技術、及開發流程上

       6. 從專案重要模組的心得及優勢上

      

       通過以上幾點說說對自已專案的認識。

      

 

10.你做的專案的優勢在哪裡?

 

       1. 專案分析設計及流程清晰度上。

       2. 部分模板的考慮問題全面性上

       3. 專案介面及業務流上

       4. 使用最新技術上

       5. 解決大型WEB的問題上

 

       通過以上幾點說說對自己專案的優勢。

 

11.你的專案的核心是什麼?

       1. 從完成業務核心去介紹(例如,商城的購物流程,OA的某個部門的重要辦工流程,從幾個模組上去介紹)

       2. 從使用的技術上(使用框架、模板、大WEB的負載均衡上等)

       3. 從資料庫的設計和關聯上

 

12.怎樣介紹專案能夠即吸引人又能表述清楚核心技術?

        在從操作介面上, 再從業務流程上, 到使用的技術, 再到效率,安全等方面去介紹

 

13.你做專案的過程中遇到什麼問題了嗎?怎麼解決的?

 

       業務流程不明確(解決:明確需求分析)

       用到一些沒有接觸過的技術(過學邊用)

 

       別說太多, 儘量別暴露自己太多的弱項

 

14.常用開源軟體都有那些?說說你對常用開源軟體的認識?

       從幾大類介紹(CMS, BBS, SHOP, OA, CRM等)分別介紹,或挑一個你認為最熟悉的介紹。

 

 

       一. 說說使用開源軟體優點(快速完成專案)

       二. 二次開發上注重以下一些問題:

      

       1.  這個產品在行為中的應用(到官方找一些素材)

       2.  這個產品的優點和不足

       3.  安裝開始學起

       4.  玩明白開源產品的業務

       5.  整理後臺提供了那些模組功能

       6. 前臺又有那些功能

       7. 總結模組(一共有多個模組, 都是那些模組)

       8. 介紹一下整個網站的目錄結構 (這樣設計的好處)

       9. 找三到5個模組(一個一個介紹, 功能上介紹, 前後臺所在的檔案都有那些), 以及資料庫是什麼樣的。

       10. 可以加一到兩個模組。  (後臺平臺的頁面結構, 後臺怎麼加上, 前臺怎麼加上, 資料庫又如何關聯, 命名規範)

       11. 會刪除一些模組(用不到怎麼關掉)

       12. 會改一些模組 (在一個模組上 修改)

       14. 會改主要模組中的部分顯示(圖,樣式, 大小之類) , 要知道 , 前臺有多少個模板, 每個模組中都使用那些,後分過來的變數

       13. 會為整個重新設計一套模板

 

 

       重點的幾點:

              1. 模板的熟練使用

              2. 程式基本結構

              3. 資料庫的設計結構