天津11选5走势图一定牛:php錯誤機制_http狀態碼_序列化和反序列化

作者: 魯智深 分類: PHP 發布時間: 2015-01-30 14:34

錯誤機制

有如下幾種錯誤類型

天津11选5中奖结果 www.ebzvaz.com.cn 1、deprecated

廢棄函數,有新函數替代后報錯;功能正常使用

2、notice

通知級別的錯誤,不中斷代碼執行

3、warning

警告級別的錯誤,不中斷代碼執行

4、error(中斷代碼執行)

①fatal error 致命錯誤

②parse error 語法錯誤

錯誤的捕獲(有代碼控制錯誤發送后的邏輯)

set_error_handler(“showError”,E_ALL);//showError發生錯誤是調用的函數

1
2
3
4
5
6
7
     echo "<br/>---------自定義報錯信息邏輯-----------<br/>";
     set_error_handler("showError",E_ALL);
     function showError($errno,$errmesg,$errfile,$errline){
         echo $errno.$errmesg.$errfile.$errline;
     }
   
     echo $a;

trigger_error(“自定義錯誤信息”,錯誤級別);

1
2
     echo "<br/>---------創建報錯信息-----------<br/>";
     trigger_error("我是錯誤信息",E_USER_WARNING);

error_reporting();//去除報錯信息

1
2
     echo "<br/>---------去除報錯信息-----------<br/>";
     error_reporting(E_ALL & ~E_DEDPECATED & ~E_NOTICE);

可以設置顯示的錯誤級別

error_reporting(錯誤級別)

錯誤級別

①E_ALL//所有的錯誤和警告(不包括 E_STRICT)

②E_NOTICE//運行時提醒(這些經常是你代碼中的bug引起的,也可能是有意的行為造成的。)

③E_ERROR//致命性的運行時錯誤

④E_PARSE//編譯時解析錯誤

⑤E_USER_ERROR//用戶自定義的錯誤消息

⑥E_USER_WARNING//用戶自定義的警告消息

⑦E_USER_NOTICE//用戶自定義的提醒消息

錯誤抑制符@

作用:把@加在錯誤產生的位置,就會把錯誤消息屏蔽了,效率不高

1
2
     echo "<br/>---------錯誤抑制符@-----------<br/>";
     @echo $a;

http狀態碼

狀態碼用于表示服務器對請求的處理結果,大致可以分為

100-199:表示成功接收請求,要求客戶端繼續提交下一個請求才能完成

200-299:成功接收請求,并且完成了整個處理過程

300-399:未完成請求,客戶端進行下一步細化請求

1
2
3
4
5
6
7
     echo "<br/>----------跳轉-----------<br/>";
     //header("Location:https://www.baidu.com/");
     //exit;//在每個重定向之后,都必須加上exit使代碼退出
     
     echo "<br/>----------設置http狀態碼-----------<br/>";
     //header("HTTP/1.1 404 Not Found");
     //header("HTTP/1.1 200 OK");

常見的狀態碼:

404:訪問的資源不存在

200:成功返回

304:資源本地有緩存,不再向服務器再次請求

302:服務器資源被轉移,讓客戶端重新訪問

500:服務器內部錯誤

序列化和反序列化

將數據轉換成字符串,常用于數組或者對象序列化

serialize($arr);序列化數組

1
2
3
4
5
6
     echo "<br/>----------數組序列化----------<br/>";
     $arr = array("name"=>"lzs","age"=>18,"sex"=>"male");
     var_dump($arr);
     echo "<br/>";
     $str1 = serialize($arr);
     var_dump($str1);
1
2
3
4
5
6
7
8
9
10
11
12
     echo "<br/>----------對象序列化----------<br/>";
     class Man{
         public $name="lzs";
         public function getName(){
             echo $this->name;
         }
     }
     $zm = new Man;
     $zm->getName();
     echo "<br/>";
     $str2 = serialize($zm);
     var_dump($str2);

unserialize();將被序列化的字符串,進行轉成原數據類型

1
2
3
4
5
6
7
     echo "<br/>----------反序列化數組----------<br/>";
     $str3 = unserialize($str1);
     var_dump($str3);
     
     echo "<br/>----------反序列化對象----------<br/>";
     $str4 = unserialize($str2);
     var_dump($str4);

將數據轉成字符串json格式

json_encode($arr):把數組轉成json格式字符串

1
2
3
     echo "<br/>----------json格式數據編碼----------<br/>";
     $str5 = json_encode($arr);
     var_dump($str5);

json_decode($json,true):把json格式字符串,轉成數組加第二個參數

1
2
     echo "<br/>----------json格式數據解碼----------<br/>";
     var_dump(json_decode($str5,true));

如果覺得我的文章對您有用,請隨意打賞。您的支持將鼓勵我繼續創作!

發表評論

電子郵件地址不會被公開。 必填項已用*標注