zoukankan      html  css  js  c++  java
  • json_encode和json_decode和isset和array_key_exists

    1.json_decode()

    json_decode — 对 JSON 格式的字符串进行编码 
           说明
    mixed json_decode ( string $json [, bool $assoc ] )
    接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 
     
           参数
    json
    待解码的 json string 格式的字符串。
    assoc
    当该参数为 TRUE 时,将返回 array 而非 object 。 

    json_decode($data)输出的是对象,而json_decode("$arr",true)是把它强制生成PHP关联数组. 

    2.json_encode() 
    string json_encode ( mixed $value [, int $options = 0 ] ) 
    该函数只能接受 UTF-8 编码的数据 

    options 
    由以下常量组成的二进制掩码: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_UNESCAPED_UNICODE. 
     1 <?php
     2 $a = array('<foo>',"'bar'",'"baz"','&blong&', "xc3xa9");
     3  
     4 echo "Normal: ", json_encode($a), "
    "; //Normal: ["<foo>","'bar'",""baz"","&blong&","u00e9"]
     5 echo "Tags: ", json_encode($a, JSON_HEX_TAG), "
    ";//Tags: ["u003Cfoou003E","'bar'",""baz"","&blong&","u00e9"]
     6 echo "Apos: ", json_encode($a, JSON_HEX_APOS), "
    ";//Apos: ["<foo>","u0027baru0027",""baz"","&blong&","u00e9"]
     7 echo "Quot: ", json_encode($a, JSON_HEX_QUOT), "
    ";//Quot: ["<foo>","'bar'","u0022bazu0022","&blong&","u00e9"]
     8 echo "Amp: ", json_encode($a, JSON_HEX_AMP), "
    ";//Amp: ["<foo>","'bar'",""baz"","u0026blongu0026","u00e9"]
     9 echo "Unicode: ", json_encode($a, JSON_UNESCAPED_UNICODE), "
    ";//Unicode: ["<foo>","'bar'",""baz"","&blong&","é"]
    10 echo "All: ", json_encode($a, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE), "
    
    ";// All: ["u003Cfoou003E","u0027baru0027","u0022bazu0022","u0026blongu0026","é"]
    11  
    12 $b = array();
    13  
    14 echo "Empty array output as array: ", json_encode($b), "
    ";//Empty array output as array: []
    15 echo "Empty array output as object: ", json_encode($b, JSON_FORCE_OBJECT), "
    
    ";//Empty array output as object: {}
    16  
    17 $c = array(array(1,2,3));
    18  
    19 echo "Non-associative array output as array: ", json_encode($c), "
    ";//Non-associative array output as array: [[1,2,3]]
    20 echo "Non-associative array output as object: ", json_encode($c, JSON_FORCE_OBJECT), "
    
    ";//Non-associative array output as object: {"0":{"0":1,"1":2,"2":3}}
    21  
    22 $d = array('foo' => 'bar', 'baz' => 'long');
    23  
    24 echo "Associative array always output as object: ", json_encode($d), "
    ";//Associative array always output as object: {"foo":"bar","baz":"long"}
    25 echo "Associative array always output as object: ", json_encode($d, JSON_FORCE_OBJECT), "
    
    ";//Associative array always output as object: {"foo":"bar","baz":"long"}
    26 ?>
    可以看出json_encode()和json_decode()是编译和反编译过程,注意json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。
     
    3.php array_key_exists和isset区别:
    php array_key_exists用于检查某个键名是否存在于数组中,而isset也可以用于检测数组中某个键名是否存在,那么二者有什么区别?
     一个基本的区别是isset()可用于数组和变量,而array_key_exits()只能用于数组。

    array_key_exists()

    array_key_exists() 会检查键值的存在. 这个函数会返回TRUE,只要键值存在,即使值为NULL.

    1
    2
    3
    4
    $arr = array( "one"=>"1", "two"=>"2", "three"=>null );
    array_key_exists("one", $arr); // true
    array_key_exists("two", $arr); // true
    array_key_exists("three", $arr); // true

     isset()

    和arrry_key_exitst()不同,isset()会同时检查键和值,只有当健存在,对应的变量不为NUll的时候才会返回TURE

    1
    2
    3
    4
    5
    $arr = array( "one"=>"1", "two"=>"2", "three"=>null );
    isset($arr["one"]); // true
    isset($arr["two"]); // true
    isset($arr["three"]); // false
  • 相关阅读:
    gdb --configuration
    firecracker 编译
    gvisor 编译
    gvisor
    rust Deref
    rust explicit
    rust move
    rust drop
    出租人对经营租赁的会计处理
    关于以公允价值计量的投资性房地产的处置
  • 原文地址:https://www.cnblogs.com/redfire/p/7701971.html
Copyright © 2011-2022 走看看