1、PHP是什么?
PHP是一種創(chuàng)建動(dòng)態(tài)交互性站點(diǎn)的服務(wù)器腳本語言。
2、PHP的語法
PHP腳本可以放置在文檔的任何位置,PHP腳本是以<?php開始,?>結(jié)束。PHP文件的默認(rèn)擴(kuò)展名是“.php”,PHP文件通常包含HTML標(biāo)簽和PHP腳本代碼。PHP中每個(gè)代碼行必須以分號(hào)(;)結(jié)束,分號(hào)是一種分隔符,用來把指令集區(qū)分開來。
3、PHP變量
變量是用于存儲(chǔ)信息的容器。
4、echo、print、print_r、printf、sprintf、var_dump的區(qū)別
echo是PHP語言,沒有返回值,可以輸出一個(gè)或多個(gè)簡單類型數(shù)據(jù)(int、string)。
print即使函數(shù)又不能算是函數(shù)(print()可以打印數(shù)據(jù),print也可以直接打印數(shù)據(jù)),有返回值,可以打印一個(gè)簡單類型的數(shù)據(jù)(int、string)。
print_r是函數(shù),有返回值,可以打印復(fù)雜類型的數(shù)據(jù)(array、object)。
printf是函數(shù),輸出格式化之后的字符串。
sprintf是函數(shù)和printf一樣,唯一不同的是它不會(huì)直接輸出,而是要賦值給一個(gè)變量。
var_dump是函數(shù),用來輸出變量的內(nèi)容、類型、長度,通常用來調(diào)試。
5、EOF(heredoc)是什么及使用方法
EOF(heredoc)是一種在命令行和程序語言里定義一個(gè)字符的方法。
結(jié)尾必須以分號(hào)結(jié)束,否則編譯不成功。
EOF可以用任何字符代替,但首位必須一致。
結(jié)束標(biāo)識(shí)必須頂格獨(dú)自占一行(從首行開始前后不能銜接任何空白字符)
開始標(biāo)識(shí)可以不帶引號(hào)或帶單雙引號(hào),不帶引號(hào)和帶單雙引號(hào)效果一樣。
5、PHP數(shù)據(jù)類型
integer(整型)、string(字符串)、float(浮點(diǎn)型)、boolean(布爾)、array(數(shù)組)、object(對(duì)象)、null(空值)
6、PHP常量
常量是一個(gè)簡單值得標(biāo)識(shí)符,該值在腳本中不能改變。常量名稱是由英文、下劃線、和數(shù)字構(gòu)成,但是數(shù)字不能作為首字母(常量名不需要加$符),常量是全局的。
define('常量名稱', '常量值', false),define用來定義常量,第一個(gè)參數(shù)是常量名稱,第二個(gè)參數(shù)是常量值,第三個(gè)參數(shù)是bool(true、false)默認(rèn)是false大小寫敏感,true是大小寫不敏感。
7、PHP注釋符號(hào)
/*多行注釋*/
//單行注釋
#單行注釋
8、在PHP里.的作用是什么
在PHP里.的作用是拼接字符串
9、PHP運(yùn)算符
算術(shù)運(yùn)算符:+相加、-相減、*乘法、/除法、-x取反、%除法取余、.拼接、intdiv()整除(PHP7+新增運(yùn)算符)
賦值運(yùn)算符:=左側(cè)操作數(shù)被設(shè)置為右側(cè)表達(dá)式數(shù)、+=相加、-=相減、*=相乘、/=相除、%=除法取余、.=連接兩個(gè)字符串
遞增、遞減運(yùn)算符:++i(先i+1,然后返回i)、i++(先返回i,然后i+1)、--i(先i-1,然后返回i)、i--(先返回i,然后i-1)
比較運(yùn)算符:==相等、===絕對(duì)相等(類型相同)、!=不等、!==絕對(duì)不等、<>不等、<小于、>大于、<=小于等于、>=大于等于
邏輯運(yùn)算符:and與、or或、&&與、||或、xor異或、!非
數(shù)組運(yùn)算符:+集合、==相等、===恒等、!=不相等、!==不恒等、<>不相等
三元運(yùn)算符:格式(isset($x) ? $x : $y),PHP7+新增null合并運(yùn)算符??(格式:$x ?? '$x為空',$x存在不為null,返回$x。為null返回錯(cuò)誤提示)
組合比較符:PHP7+新增組合運(yùn)算符也稱之為太空船運(yùn)算符,可以輕松實(shí)現(xiàn)兩個(gè)變量的比較,不僅限于數(shù)值類的比較。組合運(yùn)算符格式:<=>,組合運(yùn)算符解析:$x = $a <=> $b,$a > $b則$x等于1,$a < $b則$x等于-1,$a == $b則$x等于0。
10、if...elseif...else和switch判斷語句
if...elseif...else和switch都是根據(jù)條件判斷去執(zhí)行不同動(dòng)作。
11、超全局變量
超全局變量是PHP自帶變量,在腳本的全部作用域都可用。$GLOBALS、$_GET、$_POST、$_FILES、$_ENV、$_SERVER、$_COOKIE、$_SESSION、$_REQUEST
12、PHP循環(huán)
while、do...while、for、foreach
13、魔術(shù)常量
__LINE__文件中當(dāng)前行號(hào)、__FILE__文件完整的路徑和文件名、__CLASS__當(dāng)前類名、__FUNCTION__當(dāng)前函數(shù)名、__METHOD__當(dāng)前類名和方法名、__NAMESPACE__當(dāng)前命名空間、__DIR__文件所在目錄、__TRAIT__代碼復(fù)用方法traits
14、include、require、include_once、require_once的區(qū)別
include、require、include_once、require_once包含加載文件其他文件代碼
include、require不同之處:require會(huì)產(chǎn)生致命報(bào)錯(cuò),當(dāng)文件代碼有錯(cuò)誤的時(shí)候腳本會(huì)停止執(zhí)行,include在文件代碼有錯(cuò)誤時(shí)會(huì)生成一個(gè)警告,腳本會(huì)繼續(xù)執(zhí)行。
include_once、require_once只包含一次,如果已經(jīng)存在文件代碼,就不會(huì)繼續(xù)包含加載。
15、cookie、session的相同和不同之處
cookie、session跨頁面不跨用戶,cookie只能能保存字符串類型數(shù)據(jù),session可以保存任何人類型數(shù)據(jù)。cookie產(chǎn)生于服務(wù)器,存儲(chǔ)在客戶端。session產(chǎn)生于服務(wù)器,存儲(chǔ)在服務(wù)器。
16、Redis和MemCached的區(qū)別:
Redis和MemCached都是key-value存儲(chǔ)系統(tǒng),MemCached存儲(chǔ)數(shù)據(jù)類型單一,Redis可存儲(chǔ)多種數(shù)據(jù)類型。Redis速度比MemCached快,MemCached存在內(nèi)存中,斷電數(shù)據(jù)會(huì)丟失。
17、Redis數(shù)據(jù)類型
string字符串、hash散列、list列表、set集合、sorted set有序集合
18、MySQL int(11)可以保存手機(jī)號(hào)碼嗎
不可以,int類型的長度4個(gè)字節(jié),手機(jī)號(hào)在第5個(gè)字節(jié)的時(shí)候會(huì)被吞掉。
19、MySQL索引有幾種,有什么區(qū)別沒有
普通索引:沒有任何限制
唯一索引:與普通索引類似,不同之處就是索引字段值是唯一的允許有空值
主鍵索引:一般是建表的時(shí)候設(shè)置,主鍵值是唯一的,不允許有空值
復(fù)合索引:多個(gè)列上創(chuàng)建索引,加速復(fù)合條件查詢
全文索引:在MySQL5.6之前只有MyISAM引擎有全文索引,MySQL5.6之后InnoDB也支持全文索引。
20、MySQL中MyISAM和InnoDB的區(qū)別
MyISAM引擎查詢快,支持全文索引,不支持事務(wù)、外鍵,支持表級(jí)鎖。
InnoDB引擎查詢慢,增刪改快,支持事務(wù)、外鍵,支持事務(wù)和行級(jí)鎖。MySQL5.6之后支持全文索引。
21、InnoDB 4大特征
插入緩沖
二次寫
預(yù)讀
自適應(yīng)hash索引
21、數(shù)據(jù)庫優(yōu)化
選擇合適的字段類型(比如用varchar替換char)
用join連接代替子查詢
使用union聯(lián)合代替手動(dòng)創(chuàng)建臨時(shí)表
事務(wù)
鎖定表
使用外鍵
使用索引
優(yōu)化查詢語句
分庫、分表
22、優(yōu)化查詢語句的方法
select查詢盡量不要直接用*,直接使用指定的字段
在相同類型的字段上作比較操作(不用進(jìn)行類型轉(zhuǎn)換)
不要在索引的字段上使用函數(shù)操作
盡量使用數(shù)字類型字段
避免使用!=、<>、is null、is not null
建議每張表都設(shè)置自增主鍵
避免大事務(wù)操作
聯(lián)系客服