繁体   English   中英

PHP如何序列化对象数组?

[英]php how to serialize array of objects?

我有一个名为“ Call”的小类,我需要将这些调用存储到一个平面文件中。 我制作了另一个名为“ CallStorage”的类,其中包含一个将这些调用放入其中的数组。

我的问题是我想将此阵列存储到磁盘,以便以后可以读回并从该阵列获取调用。

我试图使用serialize()和unserialize()来实现这一点,但是它们似乎有些奇怪,并且部分信息会丢失。

这就是我在做什么:

//write array to disk
$filename = $path . 'calls-' . $today;
$serialized = serialize($this->array);
$fp = fopen($filename, 'a');
fwrite($fp, $serialized);
fclose($fp);

//read array from serialized file

$filename = $path . 'calls-' . $today;
if (file_exists($filename)) {
    $handle = fopen($filename, 'r');
    $contents = fread($handle, filesize($filename));
    fclose($handle);
    $unserialized = unserialize($contents);
    $this->setArray($unserialized);
}

有人可以看到我做错了什么吗? 我也尝试过序列化和编写包含纯字符串的数组。 我也没有设法使它正常工作。我有Java背景,所以我看不出为什么如果不能序列化就不能只将数组写入磁盘。 :)

首先,使用简写形式:

file_put_contents($filepath,serialize($var));

$var=unserialize(file_get_contents($filepath));

然后在每个阶段输出/调试以查找问题所在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM