Heim > Backend-Entwicklung > PHP-Tutorial > php中json_decode和var_export的参数用法_PHP教程

php中json_decode和var_export的参数用法_PHP教程

WBOY
Freigeben: 2016-07-13 10:56:03
Original
1035 Leute haben es durchsucht

本文章主要讲述了关于php中json_decode和var_export的第二个参数的用法,有需要了解php中json_decode和var_export用法的朋友也可以参考一下下。

无论是json_decode还是var_export都是有第二个参数的,以前从来没有注意过,T_T.而且,这个var_export函数也是第一次知道,基础啊,还是不扎实。

json_decode
(PHP 5 >= 5.2.0, PECL json:1.2.0-1.2.1)
json_decode — 对 JSON 格式的字符串进行编码
说明
mixed json_decode ( string $json [, bool $assoc ] )
接受一个 JSON 格式的字符串并且把它转换为 PHP 变量

以前用json都是用做ajax处理的数据格式,今天合作方给的接口返回的数据格式就是json的,当时还在想,这玩意返回的是object,可以直接用做javascript里面的,可是在php里面咋把这个对象转为数组呢?抓耳挠腮半天,还是决定去看手册。不看不知道,一看吓一跳,原来这玩意还有第二个参数,如果传为true的话,解码后的数据就变成数组了,Happy啊。

当array是一个从0开始的连续数组时,json_encode出来的结果是一个由[]括起来的字符串

而当array是不从0开始或者不连续的数组时,json_encode出来的结果是一个由{}括起来的key-value模式的字符串

 代码如下 复制代码

$test = array();
$test[] = 1;
$test[] = 1;
$test[] = 1;
DEBUG(json_encode($test));结果:
[1,1,1]


$test = array();
$test[] = 1;
$test[] = 1;
$test[] = 1;
unset($test[0]);
DEBUG(json_encode($test));

结果:

{"1":1,"2":1}2.当字符串为[1,1,1] 这种模式时,json_decode默认解析出来的结果是一个数组,

当字符串为{"1":1,"2":1} 这种模式时,json_decode默认解析出来的结果是一个对象,此时可以设置它的第二个参数为true强制让它返回数组

 

3.由于php无法区分一维数组和二维数组,才会出现以上情况,因为使用json编码时推荐将第二个参数设置为true


--------------------------------------------------------------------------------
想把重新弄好的数据存在文件里,数据格式是数组,之前的方法都是serialize,取出来的时候再反序列化,今天犯懒,就想能不能直接把数组存在文件里呢?
可是数组的格式实在不好拼,尤其是关联数组,那下标,我要是全知道的话不得累死我?还是问Google大哥吧。
var_export
(PHP 4 >= 4.2.0, PHP 5)
var_export — 输出或返回一个变量的字符串表示
描述
mixed var_export ( mixed $expression [, bool $return ] )

此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。
您可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。
看到没?这个函数,帅呆了,之前一直用var_dump,不知道姓var的还有这么个玩意,不错,不错的说。

 代码如下 复制代码


$handle = fopen($file_name, 'w+');
fwrite($handle,'");
fclose($handle);

结果一用的时候,还是有问题,该函数把数组的内容给我输出到页面上了,而文件内是啥都米有,这不闹呢吗?如果只是这样的话,我为啥用它啊?在页面上显示,我用

1

2

<pre class="brush:php;toolbar:false">多爽啊。正郁闷呢,仔细一看原来这个函数也有第二个参数,作用和json_decode的一样,看来我这粗心的毛病还是很严重滴。

<p> </p>

Nach dem Login kopieren
 代码如下 复制代码
$handle = fopen($file_name, 'w+');
fwrite($handle,'");
fclose($handle);


实例

 代码如下 复制代码

$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*/

var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。 而这个变量就会取得和被var_export一样的类型的值

但是, 当变量类型为resource的时候, 是无法简单copy复制的,所以, 当var_export的变量是resource类型时, var_export会返回NULL

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/632205.htmlTechArticle本文章主要讲述了关于php中json_decode和var_export的第二个参数的用法,有需要了解php中json_decode和var_export用法的朋友也可以参考一下下。 无论...
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage