PHP常見知識點梳理總結
PHP方面:
1,echo print print_r的區別
Echo是PHP語句,print與print_r是函數,語句沒有傳回值,函數可以有傳回值。
Print只能列印簡單類型變數的值。
Print_r可以列印複雜變數值(數組或對象)
Echo 輸出一個或者多個字串。
2,mysql_fetch_array() 與mysql_fetch_row()區別
mysql_fetch_array()返回根據從結果集取得的行產生的數組,如果沒有更多行,返回false,除了將資料以欄位做索引外,還可以用欄位名作為索引。
mysql_fetch_row() 返回從結果集中取得一行作為枚舉數組,返回一個數字索引的數組,位移量從0開始。
mysql_fetch_array() 是mysql_fetch_row()的擴充版本。
3,PHP物件導向中 _set() 與 _construct的作用
_set() ——- 用於為屬性設定值, _get() 擷取屬性的值
_construct ——- 在一個類中只能聲明一個構造方法,只有在每次建立對象的時候回去調用一次構造方法,不能主動的調用這個方法,所以通常用它執行一些有用的初始化任務。
4,PHP中session與cookie的區別
Cookie是儲存在用戶端的資訊,是一種在遠程瀏覽器儲存資料並以此來跟蹤和識別使用者的機制。PHP的http協議的頭資訊裡發送cookie,因此setcookie()函數必須在其他資訊輸出前調用,和header()函數的限制類似。
Session是儲存在伺服器端的資訊,從這個角度,session比cookie更安全。當會話建立時,伺服器返回用戶端一個加密的session_id 以標識使用者身份,瀏覽器關閉時,session會銷毀,從而session存的值就沒有了。
5,如何設定cookie並指定有效時間
Bool setcookie(string name,string value,int expire,string path,string domain,bool secure,bool httponly)
Name : cookie變數名
Value : cookie 變數值
Expire: 有效期間結束的時間
Path: 有效目錄
Domain: 有效網域名稱,頂級或唯一
Secure: 如果值為1,則cookie只能在https串連上有效,如果為預設值0,http和https都可以
Php設定cookie
$value = ‘something from somewhere’;
setcookie(“TestCookie”, $value); /* 簡單cookie設定 */
setcookie(“TestCookie”, $value, time()+3600); /* 有效期間1個小時 */
setcookie(“TestCookie”, $value, time()+3600, “/~rasmus/”, “.example.com”, 1); /* 有效目錄 /~rasmus,有效網域名稱example.com及其所有子網域名稱 */
?>
使用header()設定cookie;
header(“Set-Cookie: name=$value[;path=$path[;domain=xxx.com[; ]]”);
後面的參數和上面列出setcookie函數的參數一樣.
Cookie的機制原理:
a) 伺服器通過隨著響應發送一個http的Set-Cookie頭,在客戶機中設定一個cookie(多個cookie要多個頭).
b) 用戶端自動向伺服器端發送一個http的cookie頭,伺服器接收讀取.
HTTP/1.x 200 OK
X-Powered-By: PHP/5.2.1
Set-Cookie: TestCookie=something from somewhere; path=/
Expires: Thu, 19 Nov 2007 18:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-type: text/html
這一行實現了cookie功能,收到這行後
Set-Cookie: TestCookie=something from somewhere; path=/
瀏覽器將在用戶端的磁碟上建立一個cookie檔案,並在裡面寫入:
TestCookie=something from somewhere;
/
這一行就是我們用setcookie(‘TestCookie’,’something from somewhere’,’/’);的結果.也就是用header(‘Set-Cookie: TestCookie=something from somewhere; path=/’);的結果.
6,PHP物件導向中的存取控制
Public 表示全域,類內部外部子類都可以訪問
Private 表示私人,只有本類內部可以調用
Protected 表示受保護的,只有本類或子類或父類可以訪問
7,什麼是PHP的MVC,MVC的作用及原理
MVC是一個設計模式,它強制性的使應用程式的輸入,處理,輸出分開,使用MVC應用程式本分成了三個核心部分:模型,視圖,控制器,它們各自處理自己的任務。
MVC的原理:首先控制器接受使用者的請求,並決定應該調用用哪個模型來進行處理,然後模型用商務邏輯來處理使用者的請求並返回資料,然後控制器用相應的視圖格式化模型返回的資料,並通過展示層呈現給使用者。
基本原理:表現層(V)的請求發送到控制器(C),控制器根據請求類型調用業務層(M),最終調用表現層顯示。
8,PHP中include require 的區別
這兩種結構在處理失敗之外有不同,include產生一個警告,而require則導致一個致命的錯誤,換句話說,如果你想在遇到丟失檔案時停止處理頁面就用require。Include就不是這樣,指令碼會繼續執行。
Require的使用方法如require(“Myfile.php”); 這個表式通常放到PHP程式的最前面,PHP執行前,就會讀入require所指定引入的檔案,使它變成PHP程式網頁的一部分。
Include使用方法和上面相同,這個程式一般放到流程式控制制的處理區段,php程式網頁在讀到include的檔案時,才將它讀進來,這種方式,可以把程式執行時的流程簡單化。
當頁面執行到require()時,如果require是一個PHP、HTML頁面的話,這時就會馬上轉到去執行該頁面了。而include,一般是用於include進來一些inc檔案。比如說可以將你的網站的頁頭和頁首作為一個inc檔案,這樣在每個PHP檔案裡面再include進來。include實際只是將你要include的檔案嵌入到當前頁面當中。而require則是馬上去執行你所請求的頁面。
——————————————————————————–
incluce在用到時載入
require在一開始就載入
_once尾碼表示已載入的不載入
php系統在載入php程式時有一個偽編譯過程,可使程式運行速度加快。但incluce的文檔仍為解釋執行
include的檔案中出錯了,主程式繼續往下執行
require的檔案出錯了,主程式也停了
所以包含的檔案出錯對系統影響不大的話(如介面檔案)就用include,否則用require
include_once()函數,require_once()函數會先檢查目標檔案的內容是不是在之前就已經匯入過了,如果是的話,便不會再次重複匯入同樣的內容
10,計算兩個時間差 2009.5.12 2009.5.20
$regist1 = “05/12/2006″;
$regist2 = “10/05/2007″;
list($month1,$day1,$year1)= explode(“/”,$regist1);
list($month2,$day2,$year2)= explode(“/”,$regist2);
$regist1 = mktime(0,0,0,$month1,$day1,$year1);
$regist2 = mktime(0,0,0,$month2,$day2,$year2);
$time_difference = $regist2-$regist1;
11,你瞭解的協議有哪些?HTTP協議的錯誤提示代表什嗎?
SMTP(Simple Mail Transfer Protocal)稱為簡易郵件傳輸通訊協定,目標是向使用者提供高效、可靠的郵件傳輸。
POP的全稱是 Post Office Protocol ,即郵局協議,用於電子郵件的接收,它使用TCP的110連接埠,現在常用的是第三版,所以簡稱為 POP3
IMAP是Internet Message Access Protocol的縮寫,顧名思義,主要提供的是通過Internet擷取資訊的一種協議。
HTTP(HyperTextTransferProtocol)是超文字傳輸通訊協定 (HTTP)的縮寫,它用於傳送WWW方式的資料,關於HTTP協議的詳細內容請參考RFC2616。
IE提示 HTTP 403 – 禁止訪問
IE提示 HTTP 403.9 – 禁止訪問:串連的使用者過多
IE提示 HTTP 404 – 無法找到檔案
IE提示 HTTP 500 – 內部伺服器錯誤