Hướng dẫn what is serialization in php explain with example? - serialization trong php giải thích với ví dụ là gì?

❮ Tham chiếu xử lý biến PHP

Thí dụ

Chuyển đổi biểu diễn có thể lưu trữ của một giá trị:

$data = serialize(array("Red", "Green", "Blue"));
echo $data;
?>

Hãy tự mình thử »


Định nghĩa và cách sử dụng

Hàm serialize () chuyển đổi một biểu diễn có thể lưu trữ của một giá trị.

Để tuần tự hóa dữ liệu có nghĩa là chuyển đổi giá trị thành một chuỗi các bit, để nó có thể được lưu trữ trong một tệp, bộ đệm bộ nhớ hoặc truyền qua mạng.


Cú pháp

Giá trị tham số

Tham sốSự mô tả
giá trịYêu cầu. Chỉ định giá trị được tuần tự hóa

Chi tiết kỹ thuật

Giá trị trở lại:Một chuỗi chứa một biểu diễn byte-stream của giá trị. Chuỗi có thể được lưu trữ ở bất cứ đâu
Loại trở lại:Sợi dây
Phiên bản PHP:4.0+

❮ Tham chiếu xử lý biến PHP


Các đối tượng tuần tự - Đối tượng trong Phiên

serialize () Trả về một chuỗi chứa biểu diễn dòng byte của bất kỳ giá trị nào có thể được lưu trữ trong PHP. unserialize () có thể sử dụng chuỗi này để tạo lại các giá trị biến ban đầu. Sử dụng serialize để lưu một đối tượng sẽ lưu tất cả các biến trong một đối tượng. Các phương thức trong một đối tượng sẽ không được lưu, chỉ tên của lớp. returns a string containing a byte-stream representation of any value that can be stored in PHP. unserialize() can use this string to recreate the original variable values. Using serialize to save an object will save all variables in an object. The methods in an object will not be saved, only the name of the class.

Để có thể giải phóng () một đối tượng, lớp của đối tượng đó cần được xác định. Đó là, nếu bạn có một đối tượng của lớp A và tuần tự hóa điều này, bạn sẽ nhận được một chuỗi đề cập đến lớp A và chứa tất cả các giá trị của các biến có trong đó. Nếu bạn muốn có thể giải phóng điều này trong một tệp khác, một đối tượng của lớp A, định nghĩa của lớp A phải có trong tệp đó trước. Điều này có thể được thực hiện ví dụ bằng cách lưu trữ định nghĩa lớp của lớp A trong một tệp bao gồm và bao gồm tệp này hoặc sử dụng hàm spl_autoload_register ().unserialize() an object, the class of that object needs to be defined. That is, if you have an object of class A and serialize this, you'll get a string that refers to class A and contains all values of variables contained in it. If you want to be able to unserialize this in another file, an object of class A, the definition of class A must be present in that file first. This can be done for example by storing the class definition of class A in an include file and including this file or making use of the spl_autoload_register() function.

// classa.inc:class {
      public 
$one 1;

          public function

show_one() {
          echo 
$this->one;
      }
  }
// page1.php:include("classa.inc");$a = new A;
  
$s serialize($a);
  
// store $s somewhere where page2.php can find it.
  
file_put_contents('store'$s);// page2.php:

    // this is needed for the unserialize to work properly.

include("classa.inc");$s file_get_contents('store');
  
$a unserialize($s);// now use the function show_one() of the $a object.  
  
$a->show_one();
?>

Chúng tôi khuyến nghị rằng nếu một ứng dụng tuần tự hóa các đối tượng, để sử dụng sau trong ứng dụng, ứng dụng bao gồm định nghĩa lớp cho đối tượng đó trong suốt ứng dụng. Không làm như vậy có thể dẫn đến việc một đối tượng không bị không xác định mà không có định nghĩa lớp, điều này sẽ dẫn đến việc PHP cho đối tượng một lớp __PHP_INCOMPLETE_CLASS_NAME, không có phương thức nào và sẽ khiến đối tượng trở nên vô dụng.__PHP_Incomplete_Class_Name, which has no methods and would render the object useless.

Vì vậy, nếu trong ví dụ trên $ a trở thành một phần của phiên bằng cách chạy session_register("a"), bạn nên bao gồm tệp classa.inc trên tất cả các trang của bạn, không chỉ Trang1.php và Page2.php.

Ngoài lời khuyên trên, lưu ý rằng bạn cũng có thể kết nối với các sự kiện tuần tự hóa và không xác định trên một đối tượng bằng các phương thức __s ngủ () và __wakeup (). Sử dụng __s ngủ () cũng cho phép bạn chỉ tuần tự hóa một tập hợp con của các thuộc tính của đối tượng.

Ẩn danh ¶

1 năm trước

Until such time as these documents are updated, note that `session_register()` is not needed to automatically serialize & unserialize objects in sessions. Any objects in `$_SESSION` are serialized when the session is closed (via `session_write_close()` or upon script exit) & unserialized when opened (via `session_start()`). The note about including classes throughout an app (either by including the definition globally or autoloading it) still holds.

Michael tại Smith-Li Dot Com ¶

7 năm trước

Reading this page you'd be left with the impression that a class's `serialize` and `unserialize` methods are unrelated to the `serialize` and `unserialize` core functions; that only `__sleep` and `__unsleep` allow you to customize an object's serialization interface. But look at http://php.net/manual/en/class.serializable.php and you'll see that there is a more straightforward way to control how a user-defined object is serialized and unserialized.

Tính tuần tự hóa trong PHP với ví dụ là gì?

Định nghĩa và sử dụng hàm serialize () chuyển đổi một biểu diễn có thể lưu trữ của một giá trị. Để tuần tự hóa dữ liệu có nghĩa là chuyển đổi giá trị thành một chuỗi các bit, để nó có thể được lưu trữ trong một tệp, bộ đệm bộ nhớ hoặc truyền qua mạng.converts a storable representation of a value. To serialize data means to convert a value to a sequence of bits, so that it can be stored in a file, a memory buffer, or transmitted across a network.

Tính tuần tự hóa giải thích với ví dụ là gì?

Sê -ri là một cơ chế chuyển đổi trạng thái của một đối tượng thành luồng byte.Hủy bỏ là quá trình ngược trong đó luồng byte được sử dụng để tạo lại đối tượng Java thực tế trong bộ nhớ.Cơ chế này được sử dụng để tồn tại đối tượng.Luồng byte được tạo ra là nền tảng độc lập.a mechanism of converting the state of an object into a byte stream. Deserialization is the reverse process where the byte stream is used to recreate the actual Java object in memory. This mechanism is used to persist the object. The byte stream created is platform independent.

Tuần tự hóa và các loại là gì?

Tuần tự hóa là quá trình chuyển đổi một đối tượng thành một luồng byte để lưu trữ đối tượng hoặc truyền nó đến bộ nhớ, cơ sở dữ liệu hoặc tệp.Mục đích chính của nó là lưu trạng thái của một đối tượng để có thể tạo lại nó khi cần thiết.Quá trình đảo ngược được gọi là khử deserialization.the process of converting an object into a stream of bytes to store the object or transmit it to memory, a database, or a file. Its main purpose is to save the state of an object in order to be able to recreate it when needed. The reverse process is called deserialization.

Tuần tự hóa là gì và tại sao nó được sử dụng?

Để dí dỏm, tuần tự hóa là quá trình chuyển đổi một đối tượng dữ liệu thành luồng byte và lưu trạng thái của đối tượng được lưu trữ trên đĩa hoặc được truyền qua mạng.Điều này cắt giảm kích thước lưu trữ cần thiết và giúp việc chuyển thông tin qua mạng dễ dàng hơn.the process of converting a data object into a byte stream, and saving the state of the object to be stored on a disk or transmitted across a network. This cuts down the storage size needed and makes it easier to transfer information over a network.