国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP面試基礎(chǔ)題之一

2019-11-09 20:55:40
字體:
供稿:網(wǎng)友

1、echo,PRint,printf(),sprintf(),print_r(),var_dump()的區(qū)別。

答:

echo 用于輸出變量或字符串,他是一個php語句,并非一個函數(shù),所以他并不存在返回值。

print 同echo一樣 print也不是一個函數(shù) 因此無需對其使用括號,但print稍慢于echo,需要注意的是使用print() 加上括號時會返回1。

printf()函數(shù)用于輸出格式化字符串,sprintf()函數(shù)返回一個格式化后的字符串,而不是輸出。

print_r()函數(shù)用于打印關(guān)于變量的易于理解的信息。

var_dump()函數(shù)用于打印變量的內(nèi)容,類型,長度等。

<?phpecho "aaa ","bbb ","ccc "; //aaa bbb cccecho("aaa");    //aaa//echo("aaa","bbb");//會報(bào)錯,不可以傳遞多個參數(shù)。print "aaa"; //aaa$a = print("aaa"); //$a = 1$str = "aaa";$b = print_r($str); //打印輸出 ,并返回1.echo $b; // 1$b = print_r($str,true); //不打印輸出,將$str作為返回值。echo $b; // aaaprintf("My name is %s %s","朱","孝遠(yuǎn)"); //My name is 朱 孝遠(yuǎn)//在s前添加1/$或2/$...表示后面的參數(shù)顯示的位置printf("My name is %s %1/$s","朱","孝遠(yuǎn)");  //My name is 朱 朱sprintf("My name is %s %s","朱","孝遠(yuǎn)"); //沒有任何輸出$c = sprintf("My name is %s %s","朱","孝遠(yuǎn)");echo $c;    //My name is 朱 孝遠(yuǎn)

2、表單中g(shù)et與post提交方法的區(qū)別。

答:get是發(fā)送請求HTTP協(xié)議通過url參數(shù)傳遞進(jìn)行接收,而post是實(shí)體數(shù)據(jù),可以通過表單提交大量信息。

3、session與cookie的區(qū)別。

答:session:存儲用戶訪問的全局唯一變量,存儲在服務(wù)器上的PHP指定的目錄中的(session_dir)的位置進(jìn)行的存放。

cookie:用來存儲連續(xù)訪問一個頁面時所使用,是存儲在客戶端,對于Cookie來說是存儲在WIn的Temp目錄中。

兩者都可通過時間來設(shè)置時間長短。

4、禁用Cookie后,Session還可以用嗎,有什么解決方案?

第一種:通過url傳值,把session_id附加到url上。(缺點(diǎn):整個站點(diǎn)中不能有純靜態(tài)的頁面,因?yàn)榧冹o態(tài)頁面session_id將無法繼續(xù)傳到下一頁面)

第二種:通過隱藏表單,把session_id放到表單的隱藏文本框中同表單一塊提交。(缺點(diǎn):不適用<a>標(biāo)簽之中直接跳轉(zhuǎn)的非表單的情況)

5、HTTP和HTTPS的區(qū)別。

答:HTTP效率更高,HTTPS安全性更高。

HTTP:超文本傳輸協(xié)議,信息明文傳輸,是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的網(wǎng)絡(luò)協(xié)議。HTTP使用的端口號是80,HTTP協(xié)議是無狀態(tài)的(所以采用session或cookie去標(biāo)識用戶狀態(tài))。

HTTPS:是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容就需要SSL。

HTTPS使用的端口443,HTTPS協(xié)議需要到ca申請證書,一般免費(fèi)的證書很少,需要交費(fèi)。

6、數(shù)據(jù)庫中的事務(wù)是什么?事務(wù)的四個特性?

答:事務(wù)是指用戶定義的 一個數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位。

事務(wù)具有4個特征:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續(xù)性(Durability)。這4個特性簡稱為ACID特性。

原子性:事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。

一致性:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到了一個一致性狀態(tài)。

隔離性:一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾。

持續(xù)性:持續(xù)性也稱永久性,指一個事務(wù)一旦提交,它對數(shù)據(jù)庫中的數(shù)據(jù)的改變就應(yīng)該是永久的。

7、索引的最左前綴原則?

答:也是最左優(yōu)先,比如為name,age,city三個列建立多列索引,相當(dāng)于創(chuàng)建了name和name,age組合索引和name,age,city的組合索引。如果where條件選擇的是age and city 或 age 、city這些字段來查,則不會使用到索引,會遍歷全表查找。一般情況下,where子句中使用最頻繁的一列放在最左邊。

8、MySQL存儲引擎MyISAM與InnoDB區(qū)別。

答:Mysql中有很多引擎,InnoDB和MyISAM是最常使用的兩種,其中MyISAM是MySql默認(rèn)存儲引擎。

事務(wù):InnoDB支持事務(wù)功能,MyISAM不支持并且MyISAM的執(zhí)行速度更快且性能更好。

數(shù)據(jù)操作語言:MyISAM引擎適合執(zhí)行大量select操作,InnoDB引擎適合執(zhí)行大量的inset或update操作。

鎖機(jī)制:MyISAM鎖的粒度是表級即表級鎖,InnoDB支持行級鎖定即行級鎖。

物理結(jié)構(gòu):MyISAM表存放在三個文件中:frm文件存放表格定義,數(shù)據(jù)文件是MYD(MyData),索引文件是MYI(MYIndex)。

    InnoDB表由共享空間、日志文件組(rado文件)、表結(jié)構(gòu)定義文件組成。若將innodb_file_pre_table設(shè)置為on,則系統(tǒng)將為每個表單獨(dú)生成一個table_name.ibd的文件,在此文件中存儲與表相關(guān)的數(shù)據(jù)、索引、表的內(nèi)部數(shù)據(jù)字典信息等。

索引:MyISAM支持全文類型索引,InnoDB不支持全文索引。

查詢表的行數(shù):比如執(zhí)行select count(*) from table ,MyISAM引擎,表的行數(shù)存儲在表中,沒有使用where條件 可以直接讀取出保存好的行數(shù),所以效率較高。

    InnoDB中不保存表的具體行數(shù),需要掃描一遍整個表來計(jì)算多少行,所以效率較低。

總結(jié):MyISAM管理非事務(wù)表。它提供高速存儲和檢索,以及全文搜索能力。如果應(yīng)用中需要大量使用select查詢,那么MyISAM是更好的選擇。

   InnoDB用于事務(wù)處理應(yīng)用程序,具有眾多特性,包括ACID事務(wù)。如果應(yīng)用中需要執(zhí)行大量的insert或update操作,則應(yīng)該使用InnoDB。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 略阳县| 雅安市| 盱眙县| 珠海市| 泊头市| 吴堡县| 太和县| 蒲城县| 澄迈县| 金塔县| 桃江县| 红原县| 治多县| 五指山市| 田阳县| 尚义县| 临桂县| 万盛区| 东乡县| 莆田市| 吉安县| 沁水县| 广丰县| 延津县| 布拖县| 乌拉特中旗| 庆云县| 天长市| 北辰区| 永嘉县| 循化| 龙川县| 比如县| 体育| 平阳县| 长兴县| 双柏县| 伊宁市| 藁城市| 定边县| 长宁县|