1豹障、雙引號(hào)和單引號(hào)區(qū)別
- 雙引號(hào)解釋變量,單引號(hào)不解釋變量宿接。
- 雙引號(hào)里插入單引號(hào)赘淮,其中單引號(hào)里如果有變量的話,變量解釋
- 雙引號(hào)的變量名后面必須要有一個(gè)非數(shù)字睦霎、字母梢卸、下劃線的特殊字符,或者用{}講變量括起來副女,否則會(huì)將變量名后面的部分當(dāng)做一個(gè)整體蛤高,引起語法錯(cuò)誤
- 雙引號(hào)解釋轉(zhuǎn)義字符,單引號(hào)不解釋轉(zhuǎn)義字符,但是解釋'\和\
- 能使單引號(hào)字符盡量使用單引號(hào)戴陡,單引號(hào)的效率比雙引號(hào)要高(因?yàn)殡p引號(hào)要先遍歷一遍塞绿,判斷里面有沒有變量,然后再進(jìn)行操作恤批,而單引號(hào)則不需要判斷)
2异吻、常用的超全局變量
$_GET,$POST,$REQUEST,$GLOBALS,$FILE,$SERVER,$SESSION,$COOKIE
3、HTTP中POST喜庞、GET诀浪、PUT、DELETE區(qū)別
4延都、echo雷猪、print_r、print晰房、var_dump區(qū)別
- echo求摇、print是PHP語句,var_dump是函數(shù)
- echo輸出一個(gè)或多個(gè)字符串嫉你,中間以逗號(hào)隔開月帝,沒有返回值是語言結(jié)構(gòu)而不是真正的函數(shù)躏惋,因此不能作為表達(dá)式的一部分使用幽污。
- print只能打印簡(jiǎn)單的變量(int,string),有返回值簿姨,顯示成功則返回true
- print_r可以打印復(fù)雜類型變量的值以列表形式顯示距误,但輸出布爾值和null結(jié)果沒有意義,都是打印“\n”
- var_dump 判斷一個(gè)變量的類型和長度扁位,并輸出變量的數(shù)值
5准潭、HTTP狀態(tài)碼
狀態(tài)碼分類:
- 1** 信息,服務(wù)器收到的請(qǐng)求域仇,需要請(qǐng)求者繼續(xù)執(zhí)行操作
- 2** 成功刑然,操作被成功接收并處理
- 3** 重定向,需要進(jìn)一步的操作以完成請(qǐng)求
- 4** 客戶端錯(cuò)誤暇务,請(qǐng)求包含語法錯(cuò)誤或者無法完成請(qǐng)求
- 5** 服務(wù)器錯(cuò)誤泼掠,服務(wù)器在處理請(qǐng)求的過程中發(fā)生了錯(cuò)誤
常見狀態(tài)碼: - 200 請(qǐng)求成功
- 301 資源(網(wǎng)頁等)被永久轉(zhuǎn)義到其他URL
- 404 請(qǐng)求的資源不存在
- 505 內(nèi)部服務(wù)器錯(cuò)誤
6、include和require區(qū)別
- require是無條件包含垦细,也就是如果一個(gè)流程里加入require择镇,無論條件成立與否都會(huì)先執(zhí)行require,當(dāng)文件不存在或者無法打開時(shí)括改,會(huì)提示錯(cuò)誤腻豌,并且終止程序
- include有返回值,如果被包含的文件不存在,那么會(huì)提示一個(gè)錯(cuò)誤吝梅,但是程序會(huì)繼續(xù)執(zhí)行下去
7虱疏、如何獲取客戶端IP
客戶端IP:$_SERVER["REMOTE_ADDR"];getenv('REMOTE_ADDR')
ip2long進(jìn)行轉(zhuǎn)換
服務(wù)端ip:gethostbyname('www.baidu.com')
8、isset苏携、empty订框、is_null的區(qū)別
- isset判斷變量是否定義或者是否為空(不存在,不賦值兜叨,賦值為null)
變量存在返回true穿扳,否則返回false
變量定義不賦值返回FALSE
unset一個(gè)變量,返回FALSE
變量賦值為null国旷,返回FALSE
- empty判斷變量是否為空能轉(zhuǎn)換為false的否為空矛物,為空返回true,反之返回false
"",0,"0",null,false都認(rèn)為為空,返回true
沒有任何屬性的對(duì)象都認(rèn)為是空
- is_null 檢測(cè)傳入的值是否為null(不存在(true并且警告)跪但,沒賦值履羞,賦值null)
定義了,但是賦值為null或者沒有賦值
unset一個(gè)變量
9屡久、簡(jiǎn)述MySQL數(shù)據(jù)庫中MySIAM和InnoDB的區(qū)別
- 存儲(chǔ)結(jié)構(gòu)
MyISAM:每個(gè)MyISAM在磁盤上存儲(chǔ)成單個(gè)文件忆首,.frm文件存儲(chǔ)表定義, .MYD文件存儲(chǔ)表數(shù)據(jù)被环, .MYI文件存儲(chǔ)索引文件
InnoDB:所有的表都存在同一個(gè)數(shù)據(jù)文件中糙及,InnoDB表大小受限于操作系統(tǒng)文件的大小,一般為2GB筛欢。
- 存儲(chǔ)空間
MyISAM:可被壓縮浸锨,存儲(chǔ)空間較小。支持三種不同的存儲(chǔ)格式:靜態(tài)表版姑、動(dòng)態(tài)表、壓縮表剥险。
InnoDB:需要更多地內(nèi)存和存儲(chǔ)聪蘸,他會(huì)在內(nèi)存中建立起專用的緩沖池用于高速緩沖數(shù)據(jù)和索引
- 可移植性、備份及恢復(fù)
MyISAM:數(shù)據(jù)是以文件的形式存儲(chǔ)表制,所以在跨平臺(tái)的數(shù)據(jù)轉(zhuǎn)移中會(huì)很方便健爬。在備份和恢復(fù)時(shí)可單獨(dú)針對(duì)某個(gè)表進(jìn)行操作。
InnoDB:拷貝數(shù)據(jù)文件夫凸、備份binlog浑劳、MySQLdump
- 事務(wù)支持
MyISAM:不支持
InnoDB:支持
- 全文索引
MyISAM:支持
InnoDB:不支持
- 外鍵:
MyISAM:不支持
InnoDB:支持
- 表行數(shù)
MyISAM:保存表的總行數(shù),如果select count() from table;會(huì)直接取出該值夭拌。
InnoDB:沒有保存表的總行數(shù)魔熏,如果select count() from table;會(huì)遍歷整個(gè)表衷咽,消耗大。如果添加where條件蒜绽,myisam和innodb處理的方式都一樣镶骗。
- AUTO_INCREMENT
MyISAM:可以和其他字段一起建立聯(lián)合索引。
InnoDB:必須包含只有該字段的索引躲雅。
- 表鎖差異
MyISAM:支持表級(jí)鎖
InnoDB:支持行鎖鼎姊,但是只在where的是主鍵時(shí)有效