当前位置:Gxlcms > PHP教程 > php中json_decode和var_export的参数用法_PHP教程

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

时间:2021-07-01 10:21:17 帮助过:18人阅读

本文章主要讲述了关于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. <pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li>多爽啊。正郁闷呢,仔细一看原来这个函数也有第二个参数,作用和json_decode的一样,看来我这粗心的毛病还是很严重滴。<p></p></li><li><p> </p></li><li><table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"></li><li> <tbody><tr></li><li><td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td></li><li><td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy2664')"></td></li><li> </tr></li><li> <tr></li><li><td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id="copy2664">$handle = fopen($file_name, 'w+');<br></li><li>fwrite($handle,'<!--?php'."n".'$datas= '.var_export($result,true).";n?-->");<br></li><li>fclose($handle);</td></li><li> </tr></li><li></tbody></table></li><li><p><br></li><li><strong>实例<br></li><li></strong></p></li><li><table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"></li><li> <tbody><tr></li><li><td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td></li><li><td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy3309')"></td></li><li> </tr></li><li> <tr></li><li><td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id="copy3309"></li><li><p>$res = yblog_mspconfiginit("ratings");<br></li><li>var_dump($res);<br></li><li>var_export($res);</p></li><li><p>/*结果:resource(1) of type (yahoo_yblog)NULL*/</p></li><li></td></li><li> </tr></li><li></tbody></table></li><li><p> </p></li><li><p>再比如:</p></li><li><table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"></li><li> <tbody><tr></li><li><td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td></li><li><td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy6396')"></td></li><li> </tr></li><li> <tr></li><li><td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id="copy6396"></li><li><p><br></li><li>$res = fopen('status.html', 'r');<br></li><li>var_dump($res);<br></li><li>var_export($res);</p></li><li><p>/*结果:resource(2) of type (stream)NULL*/</p></li><li></td></li><li> </tr></li><li></tbody></table></li><li><p>var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。 而这个变量就会取得和被var_export一样的类型的值</p></li><li><p>但是, 当变量类型为resource的时候, 是无法简单copy复制的,所以, 当var_export的变量是resource类型时, var_export会返回NULL</p></li><li> </li><li><p></p></li><li><p align="left"><span id="url" itemprop="url">http://www.bkjia.com/PHPjc/632205.html</span><span id="indexUrl" itemprop="indexUrl">www.bkjia.com</span><span id="isOriginal" itemprop="isOriginal">true</span><span id="isBasedOnUrl" itemprop="isBasedOnUrl">http://www.bkjia.com/PHPjc/632205.html</span><span id="genre" itemprop="genre">TechArticle</span><span id="description" itemprop="description">本文章主要讲述了关于php中json_decode和var_export的第二个参数的用法,有需要了解php中json_decode和var_export用法的朋友也可以参考一下下。 无论...</span></p></li><li> </li></ol></pre>

人气教程排行