Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Phương pháp ưu tiên lưu trữ mảng PHP: json_encode hay serialize?

Điều này phụ thuộc vào yêu cầu hiện tại.

JSON nhanh hơn so với serialization PHP trừ khi các điều kiện sau được đáp ứng:

  • Lưu trữ mảng lồng sâu.
  • Các đối tượng được lưu trữ cần được unserialized thành lớp thích hợp.
  • Tương tác giữa các phiên bản PHP cũ không hỗ trợ json_decode.

Dòng mã dưới đây có thể được sử dụng để lưu trữ mảng PHP sử dụng json_encode:

json_encode($array, JSON_UNESCAPED_UNICODE)

JSON không lưu trữ lớp gốc của đối tượng ở đâu, nhưng nó có thể được khôi phục dưới dạng các thể hiện lớp thuộc về stdClass.

Tại sao sử dụng json_encode thay vì serialize?

  • JSON di động hơn nhiều so với serialize.
  • Các tính năng của __sleep() và __wakeup() không thể tận dụng được với JSON.
  • Mặc định, các thuộc tính public được serialize với JSON. (Nếu phiên bản PHP >= 5.4, có thể implement JsonSerializable để thay đổi hành vi).

Ví dụ

<?php 
    // Mảng được khai báo 
    $value = array( 
        "name"=>"name_me", 
        "email"=>"myemail.com" 
    ); 
    // hàm json_encode() được sử dụng 
    $json = json_encode($value); 
    // Hiển thị đầu ra 
    echo($json); 
?>

Kết quả

Điều này sẽ tạo ra kết quả sau:

{"name":"name_me","email":"myemail.com"}