在最近幾年中當我們每次去一家公司求職的時候,面試官給過我們出的php面試題中都會出現關於thinkphp的題目,因為thinkp在最近幾年的受到了很多公司以及程序員的青睞,那麼我們php中文網今天就給大家總結下在php面試題中經常遇到的thinkphp題目、希望對你有幫助!
Thinkphp題目:
#1、常見的PHP框架
# #答:thinkPHPyii
ZendFramework#CakePhpsy2020年thinkphp面試題目及答案(大全)2、如何理解TP中的單一入口文件?
定義框架路徑、專案路徑和專案名稱(可選)定義調試模式
和運行模式的相關常數(可選)載入框架入口檔案(必須) 3.ThinkPHP中的MVC分層是什麼? (理解)答:MVC 是一種將應用程式的邏輯層和表現層分開的方法。 ThinkPHP 也是基於MVC設計模式
的。 MVC只是一個抽象的概念,並沒有特別明確的規定,ThinkPHP中的MVC分層大致體現在:模型(M):模型的定義由Model類別來完成。 控制器(C):應用程式控制器(核心控制器App類別)和Action控制器都承擔了控制器的角色,Action控制器完成業務流程控制,而應用控制器則負責調度控制。視圖(V):由View類別和模板檔案組成,模板做到了100%分離,可以獨立預覽和製作。
但實際上,ThinkPHP並不依賴M或V ,也就是說沒有模型或視圖也一樣可以運作。甚至不依賴C,這是因為ThinkPHP在Action之上還有一個總控制器,就是App控制器,負責應用程式的總調度。在沒有C的情況下,必然存在視圖V,否則就不再是完整的應用。總而言之,ThinkPHP的MVC模式只是提供了一種敏捷開發的手段,而不是拘泥於MVC本身。
4.ThinkPHP如何防止SQL注入? (理解)答案:(1)查詢條件盡量使用陣列方式,這是更安全的方式;
(2)如果不得已必須使用字串查詢條件,使用預處理機制;
(3)開啟資料欄位類型驗證,可以對數值資料類型做強制轉換;(3.1版本開始已經強制進行欄位類型驗證了)
(4)使用自動驗證和
自動完成機制進行針對應用的自訂過濾;(5)使用欄位類型檢查、自動驗證和自動完成機制等避免惡意資料的輸入。
答案:開啟偵錯模式很簡單,只需要在入口檔案中增加一行常數定義碼:
<?Php,bv //开启调试模式 define('APP_DEBUG', true); //加载框架入口文件 require './ThinkPHP/ThinkPHP.php';在完成開發階段部署到生產環境後,只需要刪除偵錯模式定義程式碼即可切換到部署模式。開啟偵錯模式後,系統會先載入系統預設的偵錯
設定檔,然後載入專案的偵錯設定文件,偵錯模式的優點在於:
開啟日誌記錄,任何錯誤訊息和偵錯資訊都會詳細記錄,方便偵錯;
關閉範本緩存,範本修改可以即時生效;記錄SQL日誌,方便分析SQL;關閉欄位緩存,資料表欄位修改不受快取影響;
###嚴格檢查檔案大小寫(即使是Windows平台),幫助你提前發現Linux部署問題;######可以方便用於開發過程的不同階段,包括開發、測試和演示等任何需要的情況,不同的應用模式可以配置獨立的專案設定檔。 #################################6.TP中的URL模式有哪幾種?預設是哪種? ##########答:ThinkPHP支持四种URL模式,可以通过设置URL_MODEL参数来定义,包括普通模式、PATHINFO、REWRITE和兼容模式。
默认模式为:PATHINFO模式,设置URL_MODEL 为1
7、TP中系统变量有哪些?如何获取系统变量?
答:获取系统变量的方法:
只需要在Action中调用下面方法:
$this->方法名("变量名",["过滤方法"],["默认值"])
8、ThinkPHP框架中D函数与M函数的区别是什么?
答:M方法实例化模型无需用户为每个数据表定义模型类,D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会自动调用M方法去实例化Model基类。同时对于已实例化过的模型,不会重复去实例化(单例模式)。
总结:
在php面试题中还有关于很多的thinkphp的题目、在这里我们就不一一列举出来了,这给大家介绍的是在面试中比较常被问的thinkphp题目!
相关推荐:
以上是php面試題目中Thinkphp題目的摘要的詳細內容。更多資訊請關注PHP中文網其他相關文章!