首页 > 代码库 > print($arr,true)的参数true表示将$arr的值返会,而不是打印

print($arr,true)的参数true表示将$arr的值返会,而不是打印

之前通过error_log()来调试php,

发现收到的json字符前边总是有一个1,一直以为是哪里直接出现了print、print_r、echo、var_dump(),

后来发现原来是某处用了形如error_log(print_r($str))的代码,这样会直接打印$str的值,顾收到的json前总是有一个1,

正确做法应该是error_log(print_r($str,true))

 

注意:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
//这种情况,浏览器会显示Array ( [0] => c [1] => d ),而php错误日志会显示1
$arr = array("c","d");
error_log(print_r($arr));
 
 
//这种情况,浏览器无任何显示,而php错误日志会显示
//Array
//(
//  [0] => c
//  [1] => d
//)
$arr = array("c","d");
error_log(print_r($arr,true));

  

即print_r()中的第二个参数为true是,表示把字符返回而不是打印在屏幕上