PHP数组里面存放对象

PHP数组里面存放对象,第1张

楼上解释正确,不过我补充一下。

既然初始化是在类声明之后,那么可以通过手动串行化和反串行化来达到目的。

保存的时候使用serialize来保存,提取恢复的时候使用unserialize来恢复。

当然,这个还有一个要注意的地方,需要保存的对象最好是只包含数据,意思是,不要有数据库连接资源、文件资源之类的,如果包含这些,串行和反串行的结果都是一个int 0,反串行的时候可能不能正常工作。

至于对象串行反串行的一些可定制的功能,可以参考帮助文档的这个部分:

http://dk2.php.net/manual/zh/language.oop.magic-functions.php

通过定义魔术函数__sleep __wakeup来实现。

可以的 举个简单的例子给你

<?php

class foo

{

function do_foo()

{

echo "Doing foo."

}

}

$bar = new foo

$arry1=array(1,$bar)//这里将实例化的对象存入数组

var_dump($arry1)//这里打印数组结构 你会发现下标1的位置存储了一个object对象

$arry1[1]->do_foo()//以数组形式 调用do_foo()

$bar->do_foo()//正常的调用do_foo()

//两种方式输出是一样的 充分说明 数组是可以存储对象的 希望对你的学习有帮助

?>

//下面是输出 我自动换行分割了下 其实是一行

array(2) { [0]=>int(1) [1]=>object(foo)#1 (0) { } }

Doing foo.

Doing foo.

最简单的方法是设置x为长度为10的字符串,每一位对应一个选项,例如'1110000000'表示前3项选中、后7项没选,再如'1010101010'表示奇数项选中、偶数项未选择。

保存到数据库之前可以用下面的语句编码:

$x=''

for ($i=0$i<10$i++)

if ($num[$i]==1) $x.='1'

else $x.='0'

数据库获取数据后,用下面的语句分到数组里面:

for ($i=0$i<10$i++) $num[$i]=substr($x,$i,1)+0


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10069467.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存