首頁  >  文章  >  後端開發  >  php簡單面試題小結

php簡單面試題小結

小云云
小云云原創
2018-03-03 13:05:072844瀏覽

本文主要跟大家分享php簡單面試題小結,希望能幫助大家。

1 . echo 、print、print_r 的區別:

  1. echo 是 php 語句,可以輸出一個或多個字串,無回傳值。

  2. print、print_r 是函數,有回傳值。

  3. print() 只能列印出簡單型別變數的值(如int,string) ,print_r()可以印出複雜型別變數的值(如數組,物件) ,echo輸出一個或多個字串

2 .魔術常數

##類別的名稱#__TRAIT__Trait 的名字,Trait 名包含其被宣告的作用區域(例如Foo\Bar)。 __METHOD__類別的方法名稱#__NAMESPACE__目前命名空間的名稱(區分大小寫)。
名稱 意思
__LINE__ 檔案中的目前行號。
__FILE__ 檔案的完整路徑和檔案名稱。如果用在被包含檔案中,則傳回被包含的檔案名稱。
__DIR__ 檔案所在的目錄。如果用在被包含檔案中,則傳回被包含的檔案所在的目錄。
__FUNCTION__ 函數名稱
#__CLASS__
3 .

1 . echo 、print、print_r 的差別:

  1. echo 是php 語句,可以輸出一個或多個字串,無回傳值。

  2. print、print_r 是函數,有回傳值。

  3. print() 只能列印出簡單型別變數的值(如int,string) ,print_r()可以印出複雜型別變數的值(如數組,物件) ,echo輸出一個或多個字串

2 .魔術常數

名稱意思__LINE__檔案中的目前行號。 __FILE__檔案的完整路徑和檔案名稱。如果用在被包含檔案中,則傳回被包含的檔案名稱。 __DIR__檔案所在的目錄。如果用在被包含檔案中,則傳回被包含的檔案所在的目錄。 __FUNCTION__函數名稱#__CLASS__#__TRAIT____METHOD__#__NAMESPACE__

3 .get和post的區別

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

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

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

4. session和cookie的區別

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

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

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

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

關於會話機制的具體詳解,參考了一位部落客的一篇部落格http://blog.csdn.net/fangaoxin/article/details/6952954/感覺很詳細,有興趣的同學可以好好參考一下。

5.資料庫中的事務是什麼?

事務是作為一個邏輯單元執行的一系列操作,一個邏輯工作單元必須有四個屬性,稱為ACID(原子性、一致性、隔離性和持久性)屬性,只有這樣才能成為一個事務:
原子性
事務必須是原子工作單元;對於其資料修改,要麼全都執行,要麼全都不執行。
一致性
交易在完成時,必須讓所有的資料都保持一致狀態。在相關資料庫中,所有規則都必須套用於交易的修改,以保持所有資料的完整性。在事務結束時,所有的內部資料結構(如 B 樹索引或雙向鍊錶)都必須是正確的。
隔離性
由並發事務所作的修改必須與任何其它並發事務所作的修改隔離。交易檢視資料時資料所處的狀態,要麼是另一並發交易修改它之前的狀態,要麼是另一交易修改它之後的狀態,事務不會查看中間狀態的資料。這稱為可串行性,因為它能夠重新裝載起始數據,並且重播一系列事務,以使數據結束時的狀態與原始事務執行的狀態相同。
持久性
交易完成之後,它對於系統的影響是永久性的。該修改即使出現系統故障也將保持持續。

begin 開始一個交易

rollback交易回滾

commit交易確認

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

MYSQL預設是自動提交的      

MYSQL預設是自動提交的       可以透過set autocommit=0 設定禁止自動提交       Sharp ##

<?php
echo date(&#39;Y-m-d H:i:s&#39;,strtotime(&#39;-1day&#39;));//前一天
echo‘<br>’;
echo date('Y-m-d H:i:s',strtotime('-1week'));//前一周
echo'<br>';
echo date('Y-m-d H:i:s');//现在的时间
echo'<br>'
echo date('Y-m-d H:i:s',strtotime('next Monday'));//下一个星期一
echo'<br>';
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;
?>
6.能使HTML和PHP分離開的模板

smarty ,phptal ,template、PHPlib Template、FastTemplate

相關推薦:

PHP面試題之演算法題

8道php面試題反應你對php了解程度

php面試題目中筆試題目的總結

##類別的名稱
Trait 的名字,Trait 名包含其被宣告的作用區域(例如Foo\Bar)。
類別的方法名稱
目前命名空間的名稱(區分大小寫)。

以上是php簡單面試題小結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn