Hướng dẫn php serialized to array - php tuần tự hóa thành mảng

[Php 4, Php 5, Php 7, Php 8]

serialize - tạo ra một biểu diễn có thể lưu trữ của một giá trịGenerates a storable representation of a value

Sự mô tả

serialize [hỗn hợp $value]: Chuỗi[mixed $value]: string

Điều này rất hữu ích để lưu trữ hoặc truyền các giá trị PHP xung quanh mà không mất loại và cấu trúc của chúng.

Để biến chuỗi tuần tự hóa thành một giá trị PHP một lần nữa, hãy sử dụng unserialize [].unserialize[].

Thông số

value

Giá trị được tuần tự hóa. serialize [] xử lý tất cả các loại, ngoại trừ loại tài nguyên và một số đối tượng [xem ghi chú bên dưới]. Bạn thậm chí có thể tuần tự hóa các mảng có chứa các tham chiếu đến chính nó. Tài liệu tham khảo tròn bên trong mảng/đối tượng bạn đang tuần tự cũng sẽ được lưu trữ. Bất kỳ tài liệu tham khảo nào khác sẽ bị mất.serialize[] handles all types, except the resource-type and some objects [see note below]. You can even serialize[] arrays that contain references to itself. Circular references inside the array/object you are serializing will also be stored. Any other reference will be lost.

Khi các đối tượng tuần tự hóa, PHP sẽ cố gắng gọi các hàm thành viên __serialize [] hoặc __s ngủ [] trước khi tuần tự hóa. Điều này là để cho phép đối tượng thực hiện bất kỳ việc làm sạch vào phút cuối, vv trước khi được tuần tự hóa. Tương tự như vậy, khi đối tượng được khôi phục bằng cách sử dụng hàm thành viên unserialize [], hàm thành viên __unserialize [] hoặc __wakeup [] được gọi.unserialize[] the __unserialize[] or __wakeup[] member function is called.

Ghi chú::

Các thành viên riêng của đối tượng có tên lớp được chuẩn bị cho tên thành viên; Các thành viên được bảo vệ có một '*' được chuẩn bị cho tên thành viên. Các giá trị được chuẩn bị này có byte null ở hai bên.

Trả về giá trị

Trả về một chuỗi chứa biểu diễn dòng byte của value có thể được lưu trữ ở bất cứ đâu.

Lưu ý rằng đây là một chuỗi nhị phân có thể bao gồm các byte null và cần được lưu trữ và xử lý như vậy. Ví dụ: đầu ra serialize [] thường được lưu trữ trong trường blob trong cơ sở dữ liệu, thay vì trường char hoặc văn bản.serialize[] output should generally be stored in a BLOB field in a database, rather than a CHAR or TEXT field.

Ví dụ

Ví dụ #1 serialize [] Ví dụserialize[] example

Ghi chú

Ghi chú::

Các thành viên riêng của đối tượng có tên lớp được chuẩn bị cho tên thành viên; Các thành viên được bảo vệ có một '*' được chuẩn bị cho tên thành viên. Các giá trị được chuẩn bị này có byte null ở hai bên.Serializable interface or the magic __serialize[]/__unserialize[] or __sleep[]/__wakeup[] methods. If an internal class does not fulfill any of those requirements, it cannot reliably be serialized.

Trả về giá trị

Trả về một chuỗi chứa biểu diễn dòng byte của value có thể được lưu trữ ở bất cứ đâu.

Lưu ý rằng đây là một chuỗi nhị phân có thể bao gồm các byte null và cần được lưu trữ và xử lý như vậy. Ví dụ: đầu ra serialize [] thường được lưu trữ trong trường blob trong cơ sở dữ liệu, thay vì trường char hoặc văn bản.serialize[] serializes objects, the leading backslash is not included in the class name of namespaced classes for maximum compatibility.

Ví dụ

  • Ví dụ #1 serialize [] Ví dụ
  • Ghi chú
  • Lưu ý rằng nhiều đối tượng PHP tích hợp không thể được tuần tự hóa. Tuy nhiên, những người có khả năng này hoặc thực hiện giao diện có thể nối tiếp hoặc ma thuật __serialize []/__ unserialize [] hoặc __s ngủ []/__ wakeUp []. Nếu một lớp nội bộ không đáp ứng bất kỳ yêu cầu nào trong số đó, nó không thể được tuần tự hóa một cách đáng tin cậy.
  • Có một số ngoại lệ lịch sử đối với quy tắc trên, trong đó một số đối tượng bên trong có thể được tuần tự hóa mà không thực hiện giao diện hoặc phơi bày các phương thức.
  • __sleep[]
  • __wakeup[]
  • __serialize[]
  • __unserialize[]

Cảnh báo

Khi tuần tự hóa [] tuần tự hóa các đối tượng, dấu gạch chéo ngược hàng đầu không được bao gồm trong tên lớp của các lớp theo tên để tương thích tối đa.

Bài Viết Liên Quan

Chủ Đề