What is PHP's serialize() function for?
我刚刚了解了
我还看到了javascript中的序列化代码,这是一样的吗? javascript中的序列化字符串可以用php
PHP序列化允许您将数组或对象保留为文本形式。将数组分配给$ _SESSION之类的东西时,它允许PHP将其存储在文本文件中,然后在以后重新创建它。序列化用于对象和变量。 (只需确保事先声明了对象使用的类)
另一方面,Wordpress通过将序列化的数组直接存储在数据库中,将其用于非常相似的方法。如果保留键=>值的数据库,由于数组的灵活性,这可能会非常有益,您可以在value参数中存储任何内容。
这是链接(由第一位评论者提供):http://us3.php.net/serialize
我经常在数据库中看到序列化数据存储,但我真的不喜欢这样:
- 在SQL中使用该数据真的很困难:如何在序列化数据上编写条件?更难的是:如何更新它?您是否真的编写了一个PHP脚本来获取每一行,反序列化,修改,重新序列化并将它们存储回DB中? :-(
- 您将数据迁移到另一软件的那一天,将需要更多的工作来迁移数据(如果新软件不是用PHP编写的,则需要更多工作,顺便说一句)
尽管如此,我还是承认这是一种存储定义不明确的数据的简便方法……而且有时我会为此使用它……
序列化的另一个用途是促进两个系统之间的数据交换:例如,通过某种Web服务发送对象需要以某种方式对它们进行序列化。
如果两个系统都是PHP,则可以设想使用
我使用PHP的
我经常使用
例如,如果用户填写一个表单,我只存储了其中的几个元素,但是我想保留所有这些元素,以防以后需要它们,那么我将序列化表单元素的数组并将其存储在数据库中。
当您要将数据传递到PHP之外(例如传递给Javascript)时,可以使用序列化。
是的,它通常可以按原样发送字符串,整数和字符串,但不能像数组那样发送更复杂的结构。在此处阅读有关将PHP数组传递给Javascript的更多信息。
您还可以将数据格式化为许多语言广泛支持的JSON,但是随后在转换为PHP原生类型和您自己的类时,它们就会松散。在此处阅读有关JSON和PHP的更多信息。