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、外层是双引号时,内层的双引号需要转义。


  • 相关阅读:
    PHP迭代器
    PDO

    五种常见的 PHP 设计模式
    php fastcgi_finish_request 函数的理解
    vagrant up 启动虚拟机报错
    thrift php 的使用
    python 基本知识学习(一)
    PHP实现进程间通信:消息队列 msg_get_queue 函数不存在
    [转]Python函数的各种参数用法(含星号参数)
  • 原文地址:https://www.cnblogs.com/gyfluck/p/10418001.html
Copyright © 2011-2022 走看看