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)站的支持!
您可能感興趣的文章:- python調(diào)試神器PySnooper的使用
- 詳解DeBug Python神級工具PySnooper
- GitHub 熱門:別再用 print 輸出來調(diào)試代碼了
- php 調(diào)試?yán)鱠ebug_print_backtrace()
- 關(guān)于PySnooper 永遠(yuǎn)不要使用print進(jìn)行調(diào)試的問題