PHP面試常見題型問答

PHP面試常見題型問答

PHP是一種通用開源腳本語言,語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。以下是本站小編搜索整理的關於PHP面試常見題型問答,供參考借鑑,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!

PHP面試常見題型問答

php中傳值與傳引用的區別?什麼時候傳值什麼時候傳引用?

按值傳遞:函數內對值的任何改變在函數外部都會被忽略

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

應用場景:按值傳遞時,php必須複製值,而按引用傳遞則不需要複製值,故引用傳遞一般用於大字符串或對象。

說幾個你知道的設計模式?

單例模式: 保證一個類僅有一個實例,並提供一個訪問他的全局訪問點例如框架中的數據庫連接

簡單工廠模式: 它具有創建對象的某些方法,可以使用工廠類創建對象,而不直接使用 new。例如初始化數據庫的時候會用到,比如MySQL,MSSQL

策略模式: 針對一組算法,將每一個算法封裝到具有共同接口的獨立的類中,例如進入個人主頁時,根據瀏覽者的不同,給予不同的顯示與操作

註冊模式: 提供了在程序中有條理的存放並管理一組全局對象 (object),例如ZF框架中的Zend_Registry::set

適配器模式: 將不同接口適配成統一的API接口,例如數據操作有mysql、mysqli、pdo等,可利用適配器模式統一接口

觀察者模式: 一個對象通過添加一個方法使本身變得可觀察。當可觀察的對象更改時,它會將消息發送到已註冊的觀察者。例如實現實現消息推送

裝飾器模式: 不修改原類代碼和繼承的情況下動態擴展類的'功能,例如框架的每個Controller文件會提供before和after方法

迭代器模式: 提供一個方法順序訪問一個聚合對象中各個元素,在PHP中將繼承 Iterator 類

原型模式: 實現了一個原型接口,該接口用於創建當前對象的克隆。當直接創建對象的代價比較大時,則採用這種模式。例如,一個對象需要在一個高代價的數據庫操作之後被創建。

echo,print(),print_r(),printf(),sprintf(),var_dump()有什麼區別?

echo :是語句不是函數,沒有返回值,可輸出多個變量值,不需要圓括號。不能輸出數組和對象,只能打印簡單類型(如int,string)

print :是語句不是函數,有返回值 1 ,只能輸出一個變量,不需要圓括號。不能輸出數組和對象,只能打印簡單類型(如int,string)。

print_r :是函數,可以打印複合類型,例如:stirng、int、float、array、object等,輸出array時會用結構表示,而且可以通過print_r($str,true)來使print_r不輸出而返回print_r處理後的值

printf :是函數,把文字格式化以後輸出(參看C語言)

sprintf :是函數,跟printf相似,但不打印,而是返回格式化後的文字,其他的與printf一樣。

var_dump :函數,輸出變量的內容、類型或字符串的內容、類型、長度。常用來調試。

MySQL數據庫存儲引擎有哪些?

MyISAM:成熟、穩定、易於管理,快速讀取。一些功能不支持(事務等),表級鎖。

InnoDB:支持事務、外鍵等特性、數據行鎖定。空間佔用大,不支持全文索引等。

POST和GET有什麼區別?

GET是從服務器上獲取數據,POST是向服務器傳送數據

GET是通過發送HTTP協議通過URl參數傳遞進行接收,而POST是實體數據,通過表單提交

GET傳送的數據量較小,不能大於2KB。POST傳送的數據量較大,一般被默認爲不受限制。

GET安全性非常低,POST安全性較高