PHP 中 var_export、print_r、var_dump 調(diào)試中的區(qū)別
1、output basic type
代碼
$n = "test"; var_export($n); print_r($n); var_dump($n); echo '-----------------' . '<br/><br/>'; file_put_contents("index.log", var_export($n, true) . PHP_EOL, FILE_APPEND); file_put_contents("index.log", print_r($n, true) . PHP_EOL, FILE_APPEND); file_put_contents("index.log", var_dump($n) . PHP_EOL, FILE_APPEND);
結(jié)果
(1)前端:
'test' test /Users/xjnotxj/Program/PhpstormProject/colin/index.php:9:string 'test' (length=4) ----------------- /Users/xjnotxj/Program/PhpstormProject/colin/index.php:15:string 'test' (length=4)
(2)index.log:
'test' test
2、output array
代碼
$arr = array( "a" => 1, "b" => "222", "c" => 3, ); var_export($arr); print_r($arr); var_dump($arr); echo '-----------------' . '<br/><br/>'; file_put_contents("index.log", var_export($arr, true) . PHP_EOL, FILE_APPEND); file_put_contents("index.log", print_r($arr, true) . PHP_EOL, FILE_APPEND); file_put_contents("index.log", var_dump($arr) . PHP_EOL, FILE_APPEND);
結(jié)果
(1)前端:
array ( 'a' => 1, 'b' => '222', 'c' => 3, ) Array ( [a] => 1 [b] => 222 [c] => 3 ) /Users/xjnotxj/Program/PhpstormProject/colin/index.php:13: array (size=3) 'a' => int 1 'b' => string '222' (length=3) 'c' => int 3 ----------------- /Users/xjnotxj/Program/PhpstormProject/colin/index.php:19: array (size=3) 'a' => int 1 'b' => string '222' (length=3) 'c' => int 3
(2)index.log:
array ( 'a' => 1, 'b' => '222', 'c' => 3, ) Array ( [a] => 1 [b] => 222 [c] => 3 )
3、output object
代碼
class foo { public $n; public function do_foo() { echo "Doing foo." . $this->n; } } $object = new foo; var_export($object); print_r($object); var_dump($object); echo '-----------------' . '<br/><br/>'; file_put_contents("index.log", var_export($object, true) . PHP_EOL, FILE_APPEND); file_put_contents("index.log", print_r($object, true) . PHP_EOL, FILE_APPEND); file_put_contents("index.log", var_dump($object) . PHP_EOL, FILE_APPEND);
結(jié)果
(1)前端:
foo::__set_state(array( 'n' => NULL, ))
foo Object ( [n] => )
/Users/xjnotxj/Program/PhpstormProject/colin/index.php:19: object(foo)[1] public 'n' => null ----------------- /Users/xjnotxj/Program/PhpstormProject/colin/index.php:25: object(foo)[1] public 'n' => null
(2)index.log:
foo::__set_state(array( 'n' => NULL, )) foo Object ( [n] => )
總結(jié):
1、輸出結(jié)果的詳細(xì)性: var_export ≈ print_r < var_dump
2、調(diào)試的時(shí)候,調(diào)用 var_export、print_r、var_dump 的時(shí)候, 不用 在前加 echo 。
3、var_export,print_r 的 第二個(gè)參數(shù)為true則返回值。var_dump 不支持 ,所以用 file_put_contents 輸出調(diào)試的時(shí)候不要用 var_dump。
4、推薦開發(fā)環(huán)境的調(diào)試直接使用 var_dump,可以獲得詳細(xì)的調(diào)試信息和代碼行數(shù)定位;生產(chǎn)環(huán)境的調(diào)試使用 var_export 或 print_r,第二個(gè)參數(shù)記得設(shè)置為 true 轉(zhuǎn)為返回輸出值,而不是直接輸出到前端影響線上。
總結(jié)
以上所述是小編給大家介紹的PHP 中 var_export、print_r、var_dump 調(diào)試中的區(qū)別,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
php實(shí)現(xiàn)ffmpeg處理視頻的實(shí)踐
本文主要介紹了php實(shí)現(xiàn)ffmpeg處理視頻的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12PHP isset empty函數(shù)相關(guān)面試題及解析
這篇文章主要介紹了PHP isset empty函數(shù)相關(guān)面試題及解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12PHP curl偽造IP地址和header信息代碼實(shí)例
這篇文章主要介紹了PHP curl偽造IP地址和header信息代碼實(shí)例,本文給出服務(wù)器端和客戶端實(shí)現(xiàn)代碼,提供偽造功能和服務(wù)器端檢測代碼,需要的朋友可以參考下2015-04-04Phpstorm+Xdebug斷點(diǎn)調(diào)試PHP的方法
這篇文章主要介紹了Phpstorm+Xdebug斷點(diǎn)調(diào)試PHP的方法,本教程將通過配置Xdebug擴(kuò)展進(jìn)行斷點(diǎn)調(diào)試,目的在于提高大家的開發(fā)效率,感興趣的小伙伴們可以參考一下2018-05-05PHP通過反射動(dòng)態(tài)加載第三方類和獲得類源碼的實(shí)例
這篇文章主要介紹了PHP通過反射動(dòng)態(tài)加載第三方類和獲得類源碼的方法,一般在解析XML文件時(shí)會(huì)用到,需要的朋友可以參考下2015-11-11