php var_export 与 var_dump的分析区别
问题发现:在跟踪yratings_get_targets的时候,
error_log(var_export(yblog_mspconfiginit("ratings"),true));
老是打印出yblog_mspconfiginit(“ratings”)的返回是NULL,导致我以为是无法建立和DB的连接,最后才发现,这是var_export和var_dump的区别之一.
问题原因:var_export必须返回合法的php代码,也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量,而这个变量就会取得和被var_export一样的类型的值.
但是,当变量类型为resource的时候,是无法简单copy复制的,所以,当var_export的变量是resource类型时,var_export会返回NULL.
PHP实例:
- $res = yblog_mspconfiginit("ratings");
- var_dump($res);
- var_export($res);
- //结果:
- resource(1) of type (yahoo_yblog)
- NULL
- //再比如:
- $res = fopen('status.html', 'r');
- var_dump($res);
- var_export($res);
- //结果:
- resource(2) of type (stream)
- NULL