溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP基礎面試題的示例分析

發(fā)布時間:2021-06-04 09:33:48 來源:億速云 閱讀:135 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關PHP基礎面試題的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

1、什么事面向?qū)ο??主要特征是什么?

面向?qū)ο笫浅绦虻囊环N設計方式,它利于提高程序的重用性,使程序結構更加清晰。

主要特征:封裝、繼承、多態(tài)。

2、SESSION 與 COOKIE的區(qū)別是什么,請從協(xié)議,產(chǎn)生的原因與作用說明?

http無狀態(tài)協(xié)議,不能區(qū)分用戶是否是從同一個網(wǎng)站上來的,同一個用戶請求不同的頁面不能看做是同一個用戶。

SESSION存儲在服務器端,COOKIE保存在客戶端。Session比較安全,cookie用某些手段可以修改,不安全。Session依賴于cookie進行傳遞。禁用cookie后,session不能正常使用。Session的缺點:保存在服務器端,每次讀取都從服務器進行讀取,對服務器有資源消耗。Session保存在服務器端的文件或數(shù)據(jù)庫中,默認保存在文件中,文件路徑由php配置文件的session.save_path指定。Session文件是公有的。

3、HTTP 狀態(tài)中302、403、 500代碼含義?

一二三四五原則:(即一:消息系列;二:成功系列;三:重定向系列;四:請求錯誤系列;五:服務器端錯誤系列。)

  • 302:臨時轉(zhuǎn)移成功,請求的內(nèi)容已轉(zhuǎn)移到新位置

  • 403:禁止訪問

  • 500:服務器內(nèi)部錯誤

  • 401:代表未授權

4、請寫出數(shù)據(jù)類型(int char varchar datetime text)的意思;請問 varchar 和 char有什么區(qū)別?

  • Int 整數(shù)

  • char 定長字符

  • Varchar 變長字符

  • Datetime 日期時間型

  • Text 文本型

Varchar與char的區(qū)別 char是固定長度的字符類型,分配多少空間,就占用多長空間。Varchar是可變長度的字符類型,內(nèi)容有多大就占用多大的空間,能有效節(jié)省空間。由于varchar類型是可變的,所以在數(shù)據(jù)長度改變的時,服務器要進行額外的操作,所以效率比char類型低。

5、MyISAM和 InnoDB 的基本區(qū)別?索引結構如何實現(xiàn)?

MyISAM類型不支持事務,表鎖,易產(chǎn)生碎片,要經(jīng)常優(yōu)化,讀寫速度較快,適合用于頻繁查詢的應用;

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

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

6、isset() 和 empty() 區(qū)別

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

7、請說明 PHP 中傳值與傳引用的區(qū)別。什么時候傳值什么時候傳引用?

傳值傳遞:函數(shù)范圍內(nèi)對值的任何改變在函數(shù)外部都會被忽略

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

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

8、在PHP中error_reporting這個函數(shù)有什么作用?

設置PHP的報錯級別并返回當前級別。

9、說說你對緩存技術的了解?

緩存技術是將動態(tài)內(nèi)容緩存到文件中,在一定時間內(nèi)訪問動態(tài)頁面直接調(diào)用緩存文件,而不必重新訪問數(shù)據(jù)庫。

10、現(xiàn)在編程中經(jīng)常采取MVC三層結構,請問MVC分別指哪三層,有什么優(yōu)點?

MVC三層分別指:業(yè)務模型、視圖、控制器,由控制器層調(diào)用模型處理數(shù)據(jù),然后將數(shù)據(jù)映射到視圖層進行顯示

優(yōu)點是:①可以實現(xiàn)代碼的重用性,避免產(chǎn)生代碼冗余;②M和V的實現(xiàn)代碼分離,從而使同一個程序可以使用不同的表現(xiàn)形式

11、AJAX的優(yōu)勢是什么?

ajax是異步傳輸技術,可以通過javascript實現(xiàn),也可以通過JQuery框架實現(xiàn),實現(xiàn)局部刷新,減輕了服務器的壓力,也提高了用戶體驗。

12、在程序的開發(fā)中,如何提高程序的運行效率?

優(yōu)化SQL語句,查詢語句中盡量不使用select *,用哪個字段查哪個字段;少用子查詢可用表連接代替;少用模糊查詢;

數(shù)據(jù)表中創(chuàng)建索引;

對程序中經(jīng)常用到的數(shù)據(jù)生成緩存。

13、對于大流量的網(wǎng)站,您采用什么樣的方法來解決訪問量問題?

  • 有效使用緩存,增加緩存命中率

  • 使用負載均衡

  • 對靜態(tài)文件使用cdn進行存儲和加速

  • 想法減少數(shù)據(jù)庫的使用

  • 查看出現(xiàn)統(tǒng)計的瓶頸在哪里

  • 反向代理

14、語句include和require的區(qū)別是什么?為避免多次包含同一文件,可用什么語句代替它們?

區(qū)別:在失敗的時候:include產(chǎn)生一個warning,而require產(chǎn)生直接產(chǎn)生錯誤中斷require在運行前載入include在運行時載入代替:require_onceinclude_once

15、foo()和@foo()之間有什么區(qū)別?

@代表所有warning忽略

16、簡述php的垃圾收集機制。

php中的變量存儲在變量容器zval中,zval中除了存儲變量類型和值外,還有is_ref和refcount字段。refcount表示指向變量的元素個數(shù),is_ref表示變量是否有別名。如果refcount為0時,就回收該變量容器。如果一個zval的refcount減1之后大于0,它就會進入垃圾緩沖區(qū)。當緩沖區(qū)達到最大值后,回收算法會循環(huán)遍歷zval,判斷其是否為垃圾,并進行釋放處理。

17、如何實現(xiàn)PHP的安全最大化?

怎樣避免SQL注入漏洞和XSS跨站腳本攻擊漏洞? 答:基本原則:不對外界展示服務器或程序設計細節(jié)(屏蔽錯誤),不相信任何用戶提交的數(shù)據(jù)(過濾用戶提交)。

18、echo、print_r、print、var_dump區(qū)別

  • echo:語句結構;

  • print:是函數(shù),有返回值

  • print_r:能打印數(shù)組,對象

  • var_dump:能打印對象數(shù)組,并且?guī)?shù)據(jù)類型

19、寫出smarty模板的特點

速度快,編譯型,緩存技術,插件機制,強大的表現(xiàn)邏輯

20、如果需要原樣輸出用戶輸入的內(nèi)容,在數(shù)據(jù)入庫前,要用哪個函數(shù)處理?

htmlspecialchars或者htmlentities

感謝各位的閱讀!關于“PHP基礎面試題的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

php
AI