php调试用的几个小方法

时间:2021-11-12 16:20:07

1、PHP把一个对象转化成json字符串

$json_string = json_encode($object, JSON_FORCE_OBJECT);
json_encode($object);

//结果:"[{"aa":"bb","cc":"dd"}]"

json_encode($object,JSON_FORCE_OBJECT);

//结果:"{"aa":"bb","cc":"dd"}"

2、php中echo、print、print_r、var_dump、var_export区别

(1) print和echo是语言结构,echo输出多个值,多个值之间用逗号分隔,无返回值;print只能输出一个值,有返回值。echo和print输出整型和字符串,没法打印布尔型,如果true,打印1,false打印为空。

(2) print_r()除了输出整型和字符串,还可以输出数组和对象,数组和对象使用键值对形式表示,数组时候array(键值对形式);对象时候Object(键值对形式);没法打印布尔型,如果true,打印1,false和NULL打印为空。

(3) var_dump()判断变量的类型与长度,并输出变量的数值。如果是数组和对象,将递归展开值,通过缩进显示其结构。能够打印布尔和NULL。

(4) var_export()和var_dump()类似,其返回合法的php代码,其返回值可以赋值给php变量。

(5) var_dump()可以打印多个变量,中间用逗号隔开;print_r()和var_export()打印一个变量,第二个参数设定为true,将打印内容返回。

注:

(1)echo、print语言结构,非函数,能打印整型和字符串。

(2)print_r()和var_export()打印整型、字符串外,还能打印数组、对象,以键值对形式打印数组、对象。var_export()还可打印布尔值。

(3)var_export()在第二个参数设置true,不会打印变量,而是将其以字符串形式返回,返回值可以赋值给php变量。

(4)var_dump()除了打印整型、字符串、数组、对象,还能打印布尔型。而且是输出变量类型、长度和值。

var_dump(json_encode($post_data,JSON_FORCE_OBJECT));

会打印出如下信息:

/includes/api_model.php:114:string '{"Data":{"Top":"1","PageSize":"1","PageIndex":"1","Filter":"F_103 like '2165' ","OrderBy":"FNumber asc","Fields":"F_103,FNumber,FName"}}'

再如:

 print_r($post_data);

会打印出如下信息:

Array ( [Data] => Array ( [Top] => 1 [PageSize] => 1 [PageIndex] => 1 [Filter] => F_103 like '2165' [OrderBy] => FNumber asc [Fields] => F_103,FNumber,FName ) )

-------------------------------

print_r(json_encode($post_data));
{"Data":{"Top":"1","PageSize":"1","PageIndex":"1","Filter":"F_103 like '2165' ","OrderBy":"FNumber asc","Fields":"F_103,FNumber,FName"}}