熱門文章

      最新文章

      20道必知必會的PHP基礎面試題(附答案)

      發布時間:2021-06-22 15:26:45

      1、什么是面向對象?主要特征是什么?
      面向對象是程序的一種設計方式,它利于提高程序的重用性,使程序結構更加清晰。

      主要特征:封裝、繼承、多態。

      2、SESSION 與 COOKIE的區別是什么,請從協議,產生的原因與作用說明?
      http無狀態協議,不能區分用戶是否是從同一個網站上來的,同一個用戶請求不同的頁面不能看做是同一個用戶。

      SESSION存儲在服務器端,COOKIE保存在客戶端。Session比較安全,cookie用某些手段可以修改,不安全。Session依賴于cookie進行傳遞。禁用cookie后,session不能正常使用。

      Session的缺點:保存在服務器端,每次讀取都從服務器進行讀取,對服務器有資源消耗。Session保存在服務器端的文件或數據庫中,默認保存在文件中,文件路徑由php配置文件的session.save_path指定。Session文件是公有的。

      3、HTTP 狀態中302、403、 500代碼含義?
      一二三四五原則:(即一:消息系列;二:成功系列;三:重定向系列;四:請求錯誤系列;五:服務器端錯誤系列。)

      302:臨時轉移成功,請求的內容已轉移到新位置
      403:禁止訪問
      500:服務器內部錯誤
      401:代表未授權
      4、請寫出數據類型(int char varchar datetime text)的意思;請問 varchar 和 char有什么區別?
      Int 整數
      char 定長字符
      Varchar 變長字符
      Datetime 日期時間型
      Text 文本型
      Varchar與char的區別:

      char是固定長度的字符類型,分配多少空間,就占用多長空間。Varchar是可變長度的字符類型,內容有多大就占用多大的空間,能有效節省空間。由于varchar類型是可變的,所以在數據長度改變的時,服務器要進行額外的操作,所以效率比char類型低。

      5、MyISAM和 InnoDB 的基本區別?索引結構如何實現?
      MyISAM類型不支持事務,表鎖,易產生碎片,要經常優化,讀寫速度較快,適合用于頻繁查詢的應用;

      InnoDB類型支持事務,行鎖,有崩潰恢復能力,讀寫速度比MyISAM慢,適合于插入和更新操作比較多的應用,空間占用大,不支持全文索引等。

      創建索引:alert table tablename add index 索引名 (`字段名`)

      6、isset() 和 empty() 區別
      isset判斷變量是否存在,可以傳入多個變量,若其中一個變量不存在則返回假;empty判斷變量是否為空為假,只可傳一個變量,如果為空為假則返回真。

      7、請說明 PHP 中傳值與傳引用的區別。什么時候傳值什么時候傳引用?
      傳值傳遞:函數范圍內對值的任何改變在函數外部都會被忽略

      傳引用傳遞:函數范圍內對值的任何改變在函數外部也能反映出這些修改

      優缺點:傳值傳遞時,php必須復制值。特別是對于大型的字符串和對象來說,這將會是一個代價很大的操作。傳引用傳遞則不需要復制值,對于性能提高很有好處。

      8、在PHP中error_reporting這個函數有什么作用?
      設置PHP的報錯級別并返回當前級別。

      9、說說你對緩存技術的了解?
      緩存技術是將動態內容緩存到文件中,在一定時間內訪問動態頁面直接調用緩存文件,而不必重新訪問數據庫。

      10、現在編程中經常采取MVC三層結構,請問MVC分別指哪三層,有什么優點?
      MVC三層分別指:業務模型、視圖、控制器,由控制器層調用模型處理數據,然后將數據映射到視圖層進行顯示

      優點是:

      ①可以實現代碼的重用性,避免產生代碼冗余;

      ②M和V的實現代碼分離,從而使同一個程序可以使用不同的表現形式

      11、AJAX的優勢是什么?
      ajax是異步傳輸技術,可以通過javascript實現,也可以通過JQuery框架實現,實現局部刷新,減輕了服務器的壓力,也提高了用戶體驗。

      12、在程序的開發中,如何提高程序的運行效率?
      優化SQL語句,查詢語句中盡量不使用select *,用哪個字段查哪個字段;

      少用子查詢可用表連接代替;

      少用模糊查詢;

      數據表中創建索引;

      對程序中經常用到的數據生成緩存。

      13、對于大流量的網站,您采用什么樣的方法來解決訪問量問題?
      有效使用緩存,增加緩存命中率
      使用負載均衡
      對靜態文件使用cdn進行存儲和加速
      想法減少數據庫的使用
      查看出現統計的瓶頸在哪里
      反向代理
      14、語句include和require的區別是什么?為避免多次包含同一文件,可用什么語句代替它們?
      區別:在失敗的時候:include產生一個warning,而require產生直接產生錯誤中斷require在運行前載入include在運行時載入代替:require_onceinclude_once

      15、foo()和@foo()之間有什么區別?
      @代表所有warning忽略

      16、簡述php的垃圾收集機制。
      php中的變量存儲在變量容器zval中,zval中除了存儲變量類型和值外,還有is_ref和refcount字段。refcount表示指向變量的元素個數,is_ref表示變量是否有別名。如果refcount為0時,就回收該變量容器。

      如果一個zval的refcount減1之后大于0,它就會進入垃圾緩沖區。當緩沖區達到最大值后,回收算法會循環遍歷zval,判斷其是否為垃圾,并進行釋放處理。

      17、如何實現PHP的安全最大化?
      怎樣避免SQL注入漏洞和XSS跨站腳本攻擊漏洞? 答:基本原則:不對外界展示服務器或程序設計細節(屏蔽錯誤),不相信任何用戶提交的數據(過濾用戶提交)。

      18、echo、print_r、print、var_dump區別
      echo:語句結構;
      print:是函數,有返回值
      print_r:能打印數組,對象
      var_dump:能打印對象數組,并且帶數據類型
      19、寫出smarty模板的特點
      速度快,編譯型,緩存技術,插件機制,強大的表現邏輯

      20、如果需要原樣輸出用戶輸入的內容,在數據入庫前,要用哪個函數處理?
      htmlspecialchars或者htmlentities

      返回頂部
      主站蜘蛛池模板: 国产亚洲一区二区三区在线| 一区二区三区美女视频| 国产伦精品一区二区免费| 亚洲视频一区二区在线观看| 国产一区高清视频| 亚洲香蕉久久一区二区三区四区| 一区在线观看视频| 精品一区二区ww| 人妖在线精品一区二区三区| 亚洲国产综合精品中文第一区| 午夜精品一区二区三区在线观看| ...91久久精品一区二区三区 | 鲁丝丝国产一区二区| 日韩一区二区电影| 国产在线观看一区精品| 一区二区三区免费精品视频| 在线观看一区二区三区视频| 亚洲AV无码一区二区乱子仑| 亚洲天堂一区二区三区四区| 亚洲一区二区三区电影| 免费av一区二区三区| 日本一区二区三区在线观看| 中文字幕一区二区三| 亚洲国产精品成人一区| 丰满岳乱妇一区二区三区| 日韩动漫av在线播放一区| 国产丝袜一区二区三区在线观看| 美女视频免费看一区二区 | 视频一区视频二区在线观看| 免费无码一区二区三区蜜桃大| 午夜一区二区在线观看| 国产精品福利一区| 男人的天堂亚洲一区二区三区| 日韩精品一区二区三区国语自制| 国模极品一区二区三区| 能在线观看的一区二区三区| 免费一区二区无码视频在线播放 | 三上悠亚国产精品一区| 日本一区二区三区在线观看| 亚洲一区影音先锋色资源| 91福利视频一区|