PHP面試題總結歸納(一)

2021-07-28 02:23:35 字數 2633 閱讀 7474

2017的國際女神節,雖然和我沒什麼關係,上午10點參加了第n次面試後回來,坐在出租屋的寫字桌前,心情也是極其的複雜。其實作為一名初次進入網際網路it行業的小白來說,每一次面試,總給我一種膽戰心驚的感覺。雖然自己可以寫一些模組,但現在的大環境,需要的並不是這一類人。希望接下來,自己可以遇見等待已久的那個機會。加油!搜了一些面試寶典,好好總結學習一下。

一、get和post的區別

1.get和post都是從表單中像資料庫中提交資料的兩種方式,其中get的提交資料時,會把相關資料資訊顯示在url中,其中傳遞的值和表單中的各個字段一一對應。而post是通過http post機制,將表單內各個字段與其內容放置在html header內一起傳送到action屬性所指的url位址。使用者看不到這個過程。

2.get傳送的資料量較小,不能大於2kb。post傳送的資料量較大,一般被預設為不受限制。

3.安全效能方面顯然post更好。但執行效率上get更好。

二、session和cookie的區別

1.cookie資料是存放在客戶端的瀏覽器上,session資料放在伺服器上。

2.cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie解析從而獲取使用者資訊。

3.session會在一定時間內儲存在伺服器上。當訪問增多,會比較占用伺服器的效能,如果考慮到要減輕伺服器效能方面,應該使用cookie。

4.單個cookie儲存的資料不能超過4kb,很多瀏覽器都限制乙個站點最多儲存20個cookie。

關於會話機制的具體詳解,參考了一位博主的一篇部落格感覺很詳細,感興趣的同學可以好好參考一下。

三、資料庫中的事務是什麼?

事務是作為乙個邏輯單元執行的一系列操作,乙個邏輯工作單元必須有四個屬性,稱為acid(原子性、一致性、隔離性和永續性)屬性,只有這樣才能成為乙個事務:

原子性事務必須是原子工作單元;對於其資料修改,要麼全都執行,要麼全都不執行。

一致性事務在完成時,必須使所有的資料都保持一致狀態。在相關資料庫中,所有規則都必須應用於事務的修改,以保持所有資料的完整性。事務結束時,所有的內部資料結構(如 b 樹索引或雙向鍊錶)都必須是正確的。

隔離性由併發事務所作的修改必須與任何其它併發事務所作的修改隔離。事務檢視資料時資料所處的狀態,要麼是另一併發事務修改它之前的狀態,要麼是另一事務修改它之後的狀態,事務不會檢視中間狀態的資料。這稱為可序列性,因為它能夠重新裝載起始資料,並且重播一系列事務,以使資料結束時的狀態與原始事務執行的狀態相同。

永續性事務完成之後,它對於系統的影響是永久性的。該修改即使出現系統故障也將一直保持。

begin 開始乙個事務

rollback事務回滾

commit事務確認

注:rollback和commit不能並列使用,當同時使用時,只有前面乙個生效    

mysql預設是自動提交的       可以通過set autocommit=0 來設定 禁止自動提交         可以通過set autocommit=1 來設定 開啟自動提交

四、關於php列印日期

<?php

echo date('y-m-d h:i:s',strtotime('-1day'));//前一天

echo『

』;echo date('y-m-d h:i:s',strtotime('-1week'));//前一周

echo'

';echo date('y-m-d h:i:s');//現在的時間

echo'

'echo date('y-m-d h:i:s',strtotime('next monday'));//下乙個星期一

echo'

';echo date('y-m-d h:i:s',strtotime('last monday'));//上乙個星期一

echo "現在的時間是:".date(h:i:s a);//a-小寫的上午和午後(am 或pm)

時間差的計算

<?php

$startdate =strtotime("2012-01-01");

$enddate=strtotime("2012-02-04");

$days=round(($enddate-$startdate)/86400)+1;

echo $days;

五、能使html和php分離開的模板

smarty ,

phptal 

,template、

phplib template

、fasttemplate

六、echo(),print(),print_r()的區別

echo

可以一次輸出多個值,多個值之間用逗號分隔。echo是語言結構

(language construct)

,而並不是真正的函式,因此不能作為表示式的一部分使用。

print()

函式print()列印乙個值(它的引數),如果字串成功顯示則返回

true

,否則返回

false。

printf()

printf()源於

c語言中的

printf()

。該函式輸出格式化的字串。

print_r()和var_dump()

print_r()可以把字串和數字簡單地列印出來,而陣列則以括起來的鍵和值得列表形式顯示,並以

array

開頭。

面試題 PHP面試題

建議 比如是系統配置,缺少了無法執行,自然使用 require 如果某一段程式少了,只是少了統計 訪問的,不是必不可少的。可以使用 include 而加不加 once 就是效率上的區別,雖然系統會幫你考慮只包含一次,但系統的判斷會降低效率,因此,更應該在開發之初,把目錄結構調整高好,盡量不使用 on...

面試題總結(一)

這段時間找實習,碰到一堆算是經典的面試題。回答得不是很好,這裡總結一下,順便搜搜網上的答案。1 棧和堆的區別。管理方式不同 棧,由編譯器自動管理,無需程式設計師手工控制 堆 產生和釋放由程式設計師控制。空間大小不同 棧的空間有限 堆記憶體可以達到4g。能否產生碎片不同 棧不會產生碎片,因為棧是種先進...

面試題總結一

按失效策略分類 強制快取 對比快取 了解詳細可參考 expires http 1.0 的字段,在響應訊息頭中,設定這個字段之後,就可以告訴瀏覽器,在未過期之前不需要再次請求。表示快取到期時間,是乙個絕對的時間 當前時間 快取時間 如 expires thu,10 nov 2017 08 45 11 ...