PHP基础面试题(1-10)
1.什么是PHP?
PHP是一個基于服務端來創建動態網站的腳本語言,可以通過PHP和HTML 生成網站主頁。
2.什么是面向對象?主要特征是什么?
面向對象是程序的一種設計方式,利于提高程序的重用性,使程序結構更加清晰。主要特征:封裝、繼承、多態。
3.session和cookie的區別是什么?請從協議,產生原因與作用說明一下?
1.http協議是無狀態協議,不能區分用戶是否是從同一個網站上來的,同一個用戶請求不同的頁面不能看做是同一個用戶。
2.存儲位置不同:session存儲在服務器端;cookie保存在客戶端;
安全性:session比較安全,cookie用某些手段可以更改,不安全。session依賴于cookie進行傳遞,禁用cookie后,session不能正常使用。
3.session的缺點:保存在服務器端,每次讀取都要從服務器進行讀取,對服務器有資源消耗。session保存在服務器端的文件或數據庫中,默認保存在文件中,文件路徑由PHP配置文件的session.save_path指定。session文件是公有的。
4.如何不使用cookie的情況下向客戶端發送一個cookie.?
? ?理解:session_start()開啟時,生成一個常量 SID,當COOKIE開啟時,這個常量為空,當COOKIE關閉時,這個常量中存儲了PHPSESSID的值。通過在URL后加一個SID參數來傳遞SESSIONID的值,從而使客戶端頁面可以使用SESSION里面的值。? 當客戶端開啟COOKIE和服務器端開啟SESSION時。瀏覽器第一次請求,服務器會向瀏覽器端發送一個COOKIE里面存儲的SESSIONID,當瀏覽器第二次請求時,會把已存在的COOKIE一起提交到服務器端。
5.簡述Cookie的設置以及獲取過程?
設置cookie的值:setCookie($cookieName,$value,time()+秒數);//依次是:cookie名稱,cookie值,保存時間。
例子:創建一個cookie,名字為UserName,值為zs,過期時間為2個星期
代碼如下:
setcookie("UserName","zs",time()+2*7*24*3600);如果不設置時間,就不會保存到cookie文件中。瀏覽器不關時,能夠訪問。當瀏覽器關閉時,就無法訪問了。
例子:
代碼如下:setcookie("Age","18");
2.取cookie的值
$_cookie[$cookieName];? ? ? ? ?
例子:取出UserName的值,放在變量$uName中
$uName=$_COOKIE['UserName'];
取值的時候,一般會先判斷是否為空,再進行取值操作。上面的取值操作一般這樣寫:
if (!empty($_COOKIE['UserName']))
{
?
$uName=$_COOKIE['UserName'];
}
3.刪除指定cookie
setcookie($cookieName,value,time()-秒數);
//或者
setcookie($cookiename, '');
//或者
setcookie($cookiename, NULL);
例子:刪除UserName
setcookie("UserName","zs",time()-3600);
4.刪除當前會話的所有cookie
foreach($_COOKIE as $key=>$val){
setcookie($key,"",time()-100);
}
6.http狀態中302,403,500,200,404,502代碼的含義?
一二三四五原則:
一:消息隊列? 二:成功系列? 三:重定向系列 四:請求錯誤系列 五:服務器端錯誤系列
302:臨時轉移成功,請求的內容已轉移到新位置
403:禁止訪問
500:服務器內部錯誤
401:代表未授權
200:請求成功
404:文件未找到
502:服務器內部錯誤
7.請寫出數據類型(int char varchar datetime text)的意思,以及char和varchar的區別?
int? 整型? ?char 定長字符 varchar 變長字符? datetime 日期時間型 text 文本型
區別:char是固定長度的字符類型,分配多少空間,就占用多少空間;varchar是可變長度的字符類型,內容有多大,就占用多大的空間,能有效節省空間。所以,查找效率char型快一些,因為varchar是非定型長度,查找的時候是先查找長度,然后再進行數據提取,比char的類型多了一個步驟,所以效率要低一些。
8.數據庫中的存儲引擎主要有哪些?其中,MyISAM和InnoDB的基本區別?索引結構語句如何書寫?
mysql的存儲引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDBCluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事務安全表,其他存儲引擎都是非事務安全表。
創建數據表的時候默認是MyISAM,其中MyISAM不支持事務處理等高級功能,而InnoDB支持,MyISAM類型的表強調的是性能,其執行速度更快一些,InnoDB提供事務支持以及外部鍵等高級數據庫功能。 創建索引: alter table tablename add index('字段名'); 9.isset()和empty的區別? isset()檢測變量是否設置,并且不是null,empty()是用來判斷變量是否為空。 10.PHP字符串中單引號和雙引號的區別? 單引號不能解釋變量,而雙引號可以解釋變量。 單引號不能轉義字符,在雙引號中可以轉義字符。
轉載于:https://www.cnblogs.com/Worssmagee1002/p/7652781.html
總結
以上是生活随笔為你收集整理的PHP基础面试题(1-10)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 奇妙的滚动css+html
- 下一篇: 怎么在Ubuntu Scope中获取lo