zoukankan      html  css  js  c++  java
  • PHP的json_encode()函数的引号

    PHP的json_encode()函数的引号


    (1)数组的索引和值都使用双引号

    $a = ["id"=>1,"age"=>12,"name"=>"张三"];
    var_dump(json_encode($a));
    //结果:string(39) "{"id":1,"age":12,"name":"u5f20u4e09"}";

    (2)数组的索引和值都使用单引号
    $b = ['id'=>1,'age'=>12,'name'=>'张三'];
    var_dump(json_encode($b));
    //结果:string(39) "{"id":1,"age":12,"name":"u5f20u4e09"}"

    说明:
    比较结果可以看出,转成json后结果是一样的,
    说明函数json_encode()转化后都为双引号。

    注意,json字符串的外层是双引号,内层也是双引号,看起来是这样,转义的斜杠在打印到屏幕上时是不显示出来的。

    下面的示例可以说明:

    先定义json字符串,然后看是否可以转化成数组:

    (1)直接使用上面打印出来的json字符串

    $a = "{"id":1,"age":12,"name":"u5f20u4e09"}";
    var_dump(json_decode($a,true));

    结论:直接报错:Parse error: syntax error, unexpected 'id' (T_STRING) in ... 

    都是用双引号,报错。

    (2)使用单引号把json数据引起来

    $a = '{"id":1,"age":12,"name":"u5f20u4e09"}';//正确的json数据
    var_dump(json_decode($a,true));

    结论:正常运行,正常解析。

    (3)外层还是用双引号,内层使用斜杠转义:

    $a = "{"id":1,"age":12,"name":"u5f20u4e09"}";
    var_dump(json_decode($a,true));

    结论:正常运行,正常解析。

    (4)外层使用双引号,内层使用单引号:

    $a = "{'id':1,'age':12,'name':'u5f20u4e09'}";
    var_dump(json_decode($a,true));

    结果是NULL,也不是正常的json数据。

    结论:

    1、内层的索引和值必须是双引号;

    2、外层是单引号时,内层的双引号不需要转义;

    3、外层是双引号时,内层的双引号需要转义。


  • 相关阅读:
    linux内存查看方法
    setInterval/setTimeout传参方法
    MBT简述:基于模型的测试
    mac如何挂载移动硬盘、存储设备、U盘
    Jquery获取元素方法
    jquery如何判断元素是否被点击、属性操作、class操作
    SQL Server数据库中还原孤立用户的方法集合
    密码有效性验证失败。该密码不够复杂,不符合 Windows 策略要求
    还原SQLServer2008数据库报用户无法登录 .
    disable jboss JMXInvokerServlet .
  • 原文地址:https://www.cnblogs.com/gyfluck/p/10418001.html
Copyright © 2011-2022 走看看