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))

注意:

//这种情况,浏览器会显示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是,表示把字符返回而不是打印在屏幕上

原文地址:https://www.cnblogs.com/huangye-dream/p/3754799.html