您的位置:

php存储对象的类(php存储对象的类型包括)

本文目录一览:

PHP中如何定义对象类型数组

应该是存到对象属性中吧

你把

public function setDepartment($department)

{

$this-department=$department;

}

改成

public function setDepartment($department)

{

$this-department[]=$department;

}

即可

private $department;

要不要改成

private $department=array();

其实无所谓

PHP数组里面存放对象

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

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

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

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

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

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

PHP数组中可否存放对象?如果可以,那么在smarty的模板中应当如何获取对象的属性值?

PHP的数组是支持保存对象的实例的,然后你的错误提示中也能看出是用了数组的方式来访问了一个对象。

建议你不要用对象的形式,而全部都用数组。可以用json函数来转换

$user_array=json_decode(json_encode($user_array),true);

这样一来$user_array里面就全部都是数组,其中原先对象的部分被一个包含了其所有成员属性的数组替代。

php中数组能储存对象吗

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

?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.

php 中如何得到一个对象的类型

得到一个对象的类型,使用gettype()函数:

?php

echo gettype(1); // 输出integer

echo gettype(array()); // 输出array

得到一个对象是哪个类的实例,使用get_class()函数:

?php

$o = new stdClass();

echo get_class(); // 输出stdClass

得到一个类或对象的方法和属性,要使用反射:

?php

class MyClass {

    public $var;

    public function foo() {}

}

$ref = new ReflectionClass('MyClass');

$ref-getProperties(); // 会返回一组对象,用法参考PHP手册

$ref-getMethods(); // 会返回一组对象,用法参考PHP手册

$obj = new MyClass();

$ref = new ReflectionObject($obj);

$ref-getProperties();

$ref-getMethods();