PHP程序員面試常見問題_第1頁(yè)
PHP程序員面試常見問題_第2頁(yè)
PHP程序員面試常見問題_第3頁(yè)
PHP程序員面試常見問題_第4頁(yè)
PHP程序員面試常見問題_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PHP程序員面試常見問題

1.Include與require的區(qū)分,require和require_once的效率哪個(gè)高?

Php在遇到include時(shí)就解釋一次,假如頁(yè)面中消失10次include,php就解釋10次,而php遇到require時(shí)只解釋一次,即使頁(yè)面消失屢次require也只解釋一次,因此require的執(zhí)行表率比include高。

Php使用require包含文件時(shí)將被包含的文件當(dāng)成當(dāng)前文件的一個(gè)組成局部,假如被包含的文件中有語(yǔ)法錯(cuò)誤或者被包含的文件不存在,則php腳本將不再執(zhí)行,并提示錯(cuò)誤。

Php使用include包含文件時(shí)相當(dāng)于指定了這個(gè)文件的路徑,當(dāng)被包含的文件有語(yǔ)法錯(cuò)誤或者被包含的文件不存在時(shí)給出警告,不影響本身腳本的運(yùn)行。

Include在包含文件時(shí)可以推斷文件是否包含,而require則不管任何狀況都包含進(jìn)來。

Require的效率比require_once的效率更高,由于require_once在包含文件時(shí)要進(jìn)展推斷文件是否已經(jīng)被包含。

2.Cookie和session的區(qū)分,制止了cookie后session能正常使用嗎?session的缺點(diǎn)是什么?session在效勞器端是存在哪里的?是共有的還是私有的?

COOKIE保存在客戶端,用戶通過手段可以進(jìn)展修改,擔(dān)心全,單個(gè)cookie允許的最大值是3k。而SESSION保存在效勞器端,相比照較安全,大小沒有限制。禁用了cookie之session不能正常使用。

Session的缺點(diǎn):保存在效勞器端,每次讀取都從效勞器進(jìn)展讀取,對(duì)效勞器有資源消耗。

Session保存在效勞器端的文件或數(shù)據(jù)庫(kù)中,默認(rèn)保存在文件中,文件路徑由php配置文件的session.save_path指定。

Session文件是公有的。

3.怎么防止sql注入?

1、過濾掉一些常見的數(shù)據(jù)庫(kù)操作關(guān)鍵字:select,insert,update,delete,and,*等

或者通過系統(tǒng)函數(shù):addslashes(需要被過濾的內(nèi)容)來進(jìn)展過濾。

2、在PHP配置文件中

Register_globals=off;設(shè)置為關(guān)閉狀態(tài)//作用將注冊(cè)全局變量關(guān)閉。

比方:接收POST表單的值使用$_POST[user],假如將register_globals=on;直接使用$user可以接收表單的值。

3、SQL語(yǔ)句書寫的時(shí)候盡量不要省略小引號(hào)(tab鍵上面那個(gè))和單引號(hào)

4、提高數(shù)據(jù)庫(kù)命名技巧,對(duì)于一些重要的字段依據(jù)程序的特點(diǎn)命名,取不易被猜到的

5、對(duì)于常用的方法加以封裝,避開直接暴漏SQL語(yǔ)句

6、開啟PHP安全模式

Safe_mode=on;

7、翻開magic_quotes_gpc來防止SQL注入

Magic_quotes_gpc=off;默認(rèn)是關(guān)閉的,它翻開后將自動(dòng)把用戶提交的sql語(yǔ)句的查詢進(jìn)展轉(zhuǎn)換,把轉(zhuǎn)為\,這對(duì)防止sql注入有重大作用。

因此開啟:magic_quotes_gpc=on;

8、掌握錯(cuò)誤信息

關(guān)閉錯(cuò)誤提示信息,將錯(cuò)誤信息寫到系統(tǒng)日志。

9、使用mysqli或pdo預(yù)處理。

4.數(shù)據(jù)庫(kù)索引有幾類,分別是什么?什么時(shí)候該用索引

一般索引、主鍵索引、唯一索引

并非全部的數(shù)據(jù)庫(kù)都以一樣的方式使用索引,作為通用規(guī)章,只有當(dāng)常常查詢列中的數(shù)據(jù)時(shí)才需要在表上創(chuàng)立索引。

5.引用傳值和非引用傳值的區(qū)分,什么時(shí)候該用引用傳值?什么時(shí)候該用非引用傳值?

按值傳遞:函數(shù)范圍內(nèi)對(duì)值的轉(zhuǎn)變?cè)诤瘮?shù)外都會(huì)被忽視。

按引用傳遞:函數(shù)范圍內(nèi)對(duì)值的任何轉(zhuǎn)變?cè)诤瘮?shù)外也將反響出這些修改。

按值傳遞時(shí),php必需復(fù)制值,假如操作的是大型的對(duì)象和字符串,這將是一個(gè)代價(jià)很大的操作。按引用傳遞不需要復(fù)制值,因此對(duì)性能的提高有好處。

當(dāng)需要在函數(shù)內(nèi)轉(zhuǎn)變?cè)醋兞康闹禃r(shí)用引用傳遞,假如不想轉(zhuǎn)變?cè)兞康闹涤脗髦怠?/p>

6.寫幾個(gè)魔術(shù)方法并說明作用?

__call()當(dāng)調(diào)用不存在的方法時(shí)會(huì)自動(dòng)調(diào)用的方法

__autoload()在實(shí)例化一個(gè)尚未被定義的類是會(huì)自動(dòng)調(diào)用次方法來加載類文件

__set()當(dāng)給未定義的變量賦值時(shí)會(huì)自動(dòng)調(diào)用的方法

__get()當(dāng)獵取未定義變量的值時(shí)會(huì)自動(dòng)調(diào)用的方法

__construct()構(gòu)造方法,實(shí)例化類時(shí)自動(dòng)調(diào)用的方法

__destroy()銷毀對(duì)象時(shí)自動(dòng)調(diào)用的方法

__unset()當(dāng)對(duì)一個(gè)未定義變量調(diào)用unset()時(shí)自動(dòng)調(diào)用的方法

__isset()當(dāng)對(duì)一個(gè)未定義變量調(diào)用isset()方法時(shí)自動(dòng)調(diào)用的方法

__clone()克隆一個(gè)對(duì)象

__tostring()當(dāng)輸出一個(gè)對(duì)象時(shí)自動(dòng)調(diào)用的方法

7.$_REQUEST、$_POST、$_GET、$_COOKIE、$_SESSION、$_FILE的意思是什么?

它們都是PHP預(yù)定義變量。

$_REQUEST用來獵取post或get方式提交的值

$_POST用來獵取post方式提交的值

$_GET用來獵取get方式提交的值

$_COOKIE用來獵取cookie存儲(chǔ)的值

$_SESSION用來獵取session存儲(chǔ)的值

$_FILE用來獵取上傳文件表單的值

8.數(shù)組中下標(biāo)最好是什么類型的,為什么?

數(shù)組的下標(biāo)最好是數(shù)字類型的,數(shù)字類型的處理速度快。

9.++i和i++哪一個(gè)效率高,為什么?

++i效率比i++的效率更高,由于++i少了一個(gè)返回i的過程。

10.magic_quotes_gpc()、magic_quotes_runtime()的意思是什么?

Magic_quotes_gpc()是php配置文件中的,假如設(shè)置為on則會(huì)自動(dòng)POST,GET,COOKIE中的字符串進(jìn)展轉(zhuǎn)義,在之前加\

Magic_quotes_runtime()是php中的函數(shù),假如參數(shù)為true則會(huì)數(shù)據(jù)庫(kù)中取出來的單引號(hào)、雙引號(hào)、反斜線自動(dòng)加上反斜杠進(jìn)展轉(zhuǎn)義。

11.Echo()、print()、print_r()的區(qū)分?

Echo()是PHP語(yǔ)法,可以輸出多個(gè)值,不能輸出數(shù)組。

Print()是php的”語(yǔ)言構(gòu)造,可以輸出單個(gè)簡(jiǎn)潔類型的變量值。

Print_r()是php函數(shù),可以打印出簡(jiǎn)單類型變量的值,如數(shù)組,對(duì)象。

12.談?wù)勀銓?duì)Mvc的熟悉

MVC是一種設(shè)計(jì)模式,強(qiáng)制使輸入、處理、輸出分開,MVC的三個(gè)核心局部:M模型,V視圖,C掌握器。

視圖就是用戶看到并與之交互的界面。

模型就是程序的數(shù)據(jù)業(yè)務(wù)規(guī)章。

掌握器接收用戶的數(shù)組調(diào)用模型和視圖去完成用戶需求。

使用MVC的優(yōu)點(diǎn):低耦合、高重用性、較低的生命周期本錢、快速開發(fā)部署、可維護(hù)性、可擴(kuò)展性,有利于軟件工程化治理。

MVC的缺點(diǎn):沒有明確的定義,完全理解并不簡(jiǎn)單。小型工程不適合用MVC。

13.框架中什么是單一入口和多入口,單一入口的優(yōu)缺點(diǎn)

多入口就是通過訪問不同的文件來完成用戶懇求。

單一入口只web程序全部的懇求都指向一個(gè)腳本文件的。

單一入口更簡(jiǎn)單掌握權(quán)限,便利對(duì)http懇求可以進(jìn)展安全性檢查。

缺點(diǎn):URL看起來不那么美觀,特殊是對(duì)搜尋引擎來說不友好。

14.打印一個(gè)用.鏈接的字符串時(shí)候,還可以用什么代替.鏈接效率更高些?

可以用,代替.,效率更高。

15.提示類型200、404、502是什么意思?

200是懇求勝利,404是文件未找到,502是效勞器內(nèi)部錯(cuò)誤。

16.編寫一個(gè)自定義函數(shù)提取這段路徑的的后綴名。

“/hello/test.php.html?a=3b=4”

Functiongeturltype($url){

$info=parse_url($url);

Returnend(explode(.,$info[path]));

}

17.你

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論