《個人憨憨女朋友都能看懂學會的PHP區別表格合集》

通俗易懂的表格彙總,帶你快速理解二者(或多者)的區別關係web

持續更新~~~,若有遺漏能夠評論區告訴我~ 數組

在這裏插入圖片描述

區別表格彙總

isset 和 empty

isset:檢測變量是否已設置而且非 NULL瀏覽器

empty:判斷變量是否爲空,變量爲 0/false 也會被認爲是空;變量不存在,不會產生警告緩存

變量的值($var) isset($var) empty($var)
""(空字符串) 布爾(true) 布爾(true)
" "(空格字符) 布爾(true) 布爾(false)
false 布爾(true) 布爾(true)
true 布爾(true) 布爾(false)
array()(一個空數組) 布爾(true) 布爾(true)
NUll值 布爾(false) 布爾(true)
「0」(0做爲字符串) 布爾(true) 布爾(true)
0(0爲整數) 布爾(true) 布爾(true)
0.0(0做爲浮點數) 布爾(true) 布爾(true)

public、protected、private(3p修飾符)

在類外 在子類 在本類
public(公有)
protected(受保護)
private(私有)

cookie 和 session

cookie session
存儲 客戶端(瀏覽器) 服務器端
安全 容易被更改 安全一些
性能 減輕服務器的性能 佔用服務器的性能

Session 的運行依賴Session ID,而 Session ID 是存在 Cookie 中的,也就是說,若是瀏覽器禁用了 Cookie,Session 也會失效(可是能夠經過其它方式實現,好比在 url 中傳遞 Session ID)安全

get 和 post

請求方式 get post
本質 向服務器發索取數據的一種請求 向服務器提交數據的一種請求
服務器端獲取值的方法 $_GET $_POST
安全性 較安全
大小 URL 的最大長度是 2048 個字符 沒有大小限制

echo、print、print_r、var_dump

echo print print_r var_dump
語言結構 語言結構 普通函數 普通函數
輸出一個或多個字符串 輸出字符串 打印關於變量的易於理解的信息 打印關於變量的易於理解的信息(帶類型)

Redis 和 Memcached

緩存 Redis Memcached
數據支持類型 經常使用的數據類型有5種:String、Hash、List、Set和ZSet 僅支持簡單的key-value結構
線程 單線程的IO複用模型 多線程,非阻塞IO複用的網絡模型
是否支持事務
持久化

Nginx 和 Apache

web服務器 Nginx Apache
反向代理 很是好
Rewrite規則 很是好
FstCGI
熱部署
系統壓力比較 很小
穩定性 很是好
安全性 通常
靜態文件處理 很是好 通常
虛擬主機
內存消耗 很是小 很大

urlencode 和 rawurlencode

函數 對空格的處理 返回值
urlencode 處理成「+」 返回字符串,此字符串中除了 -_. 以外的全部非字母數字字符都將被替換成百分號(%)後跟兩位十六進制數,空格則編碼爲加號(+)。此編碼與 WWW 表單 POST 數據的編碼方式是同樣的,同時與 application/x-www-form-urlencoded 的媒體類型編碼方式同樣。因爲歷史緣由,此編碼在將空格編碼爲加號(+)方面與 » RFC3986 編碼(參見 rawurlencode())不一樣
rawurlencode 處理成「%20」 返回字符串,此字符串中除了 -_. 以外的全部非字母數字字符都將被替換成百分號(%)後跟兩位十六進制數。這是在 » RFC 3986 中描述的編碼,是爲了保護原義字符以避免其被解釋爲特殊的 URL 定界符,同時保護 URL 格式以避免其被傳輸媒體(像一些郵件系統)使用字符轉換時弄亂
函數 urlencode rawurlencode
返回值
對空格的處理 處理成「+」 處理成「%20」

include、require、include_once、require_once

處理失敗方式
include 會產生一個致命級別錯誤,並中止程序運行
require 只產生一個警告級別錯誤,程序繼續運行
include_once 同include,當所包含的文件代碼已經存在時候,不在包含
require_once 同require,當所包含的文件代碼已經存在時候,不在包含

MyISAM 和 InnoDB

存儲引擎 MyISAM InnoDB
默認引擎 須要指定
場景 適合查詢以及插入爲主的應用 適合頻繁修改以及涉及到安全性較高的應用
是否支持FULLTEXT類型的索引
是否支持事務
是否支持外鍵
表的具體行數 select count() from table,MyISAM只要簡單的讀出保存好的行數,注意的是,當count()語句包含 where條件時,兩種表的操做是同樣的 InnoDB 中不保存表的具體行數,也就是說,執行select count(*) from table時,InnoDB要掃描一遍整個表來計算有多少行
表鎖 行鎖(某些狀況下仍是鎖整表,如 update table set a=1 where user like '%lee%')
清空整個表時 從新建表 一行一行的刪除

varchar 和 char

數據類型 varchar char
解釋 變長 定長
定義長度 小於定義長度時,仍是按實際長度存儲,插入多長就存多長 若是插入的長度小於定義長度時,則用空格填充
存儲的容量 最多能存放 65532 個字符。varchar的最大有效長度由最大行大小和使用的字符集肯定。總體最大長度是 65,532字節。 最多能存放的字符個數 255,和編碼無關

結束語

持續更新中~~~,若是有添加或者糾正的地方歡迎評論。 (你的每個👍都是我更新的動力)服務器

相關文章
相關標籤/搜索