首頁 >後端開發 >php教程 >php常見知識點梳理總結

php常見知識點梳理總結

巴扎黑
巴扎黑原創
2016-11-21 13:46:411894瀏覽

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 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()+36000); /* 有效期限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)$ (“/”,$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)是超文本傳輸協定的縮寫,它用於傳送WWW方式的數據,關於HTTP協定的詳細內容請參考RFC2616。
IE提示 HTTP 403 – 禁止存取
IE提示 HTTP 403.9 – 禁止存取:連接的使用者過多
IE提示 HTTP 404 – 無法找到檔案
IE提示 HTTP 500 – 內部伺服器錯誤

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