DataObject

实现 DumpableInterface, IteratorAggregate, JsonSerializable, Countable

DataObject 是一个用于存储数据的类,但它允许你通过模拟 PHP 处理类属性的方式来访问数据。

1.0

Joomla 框架

方法

__construct

类的构造函数。

__construct( properties = []) : 

1.0

抛出

InvalidArgumentException

参数

properties

mixed关联数组或其他对象,用于设置新对象的初始属性。

响应

mixed

__get

魔术 get 方法用于获取数据属性。

__get( property) : 

此方法是受保护的 getProperty 方法的公共代理。

注意:魔术 __get 不允许递归调用。这可能很棘手,因为 __get 递归生成的错误是 "Undefined property: {CLASS}::{PROPERTY}",这具有误导性。这对于这个类很重要,因为请求不可见的属性可能会触发对子函数的调用。如果该子函数直接引用对象中的属性,它将导致对 __get 的递归。

参见 DataObject::getProperty()

1.0

参数

property

string数据属性的名称。

响应

mixed数据属性的值,如果数据属性不存在,则为 null。

__isset

魔术 isset 方法用于检查对象属性的状态。

__isset( property) : 

1.0

参数

property

string数据属性的名称。

响应

bool

__set

魔术 set 方法用于设置数据属性。

__set( property,  value) : 

这是受保护的 setProperty 方法的公共代理。

参见 DataObject::setProperty()

1.0

参数

property

string数据属性的名称。

value

mixed要赋予数据属性的值。

响应

void

__unset

魔术 unset 方法用于取消设置数据属性。

__unset( property) : 

1.0

参数

property

string数据属性的名称。

响应

void

bind

将数组或对象绑定到此对象。

bind( properties,  updateNulls = true) : 

1.0

抛出

InvalidArgumentException

参数

properties

mixed属性的关联数组或对象。

updateNulls

bool是否绑定 null 值,false 表示忽略 null 值。

响应

$this

count

计算数据属性的数量。

count() : 

1.0

响应

int数据属性的数量。

dump

将数据属性转储到对象中,如果适用,则递归。

dump( depth = 3, \SplObjectStorage dumped = null) : \stdClass

1.0

参数

depth

int递归的最大深度(默认 = 3)。例如,深度为 0 将返回一个 stdClass,其中包含所有属性的原生形式。深度为 1 将仅递归到属性的第一层。

dumped

SplObjectStorage|null已序列化对象的数组,用于避免无限循环。

响应

stdClass

dumpProperty

转储数据属性。

dumpProperty( property,  depth, \SplObjectStorage dumped) : 

如果设置了递归,此方法将转储任何实现 DumpableInterface 的对象(例如 DataObject 和 DataSet);它将把 DateTimeInterface 对象转换为字符串;它将把 Joomla\Registry\Registry 转换为对象。

1.0

参数

property

string数据属性的名称。

depth

int当前的递归深度(值为 0 将忽略递归)。

dumped

SplObjectStorage已序列化对象的数组,用于避免无限循环。

响应

mixed转储属性的值。

getIterator

获取此对象作为 ArrayIterator。

getIterator() : \ArrayIterator

这允许通过 foreach 语句访问数据属性。

参见 IteratorAggregate::getIterator()

1.0

响应

ArrayIterator

getProperty

获取数据属性。

getProperty( property) : 
参见 DataObject::__get()

1.0

参数

property

string数据属性的名称。

响应

mixed数据属性的值。

jsonSerialize

以可序列化为 JSON 格式的形式获取数据属性。

jsonSerialize() : 

1.0

响应

mixed

setProperty

设置数据属性。

setProperty( property,  value) : 

如果属性的名称以空字节开头,此方法将返回 null。

参见 DataObject::__set()

1.0

参数

property

string数据属性的名称。

value

mixed要赋予数据属性的值。

响应

mixed数据属性的值。

属性

properties

数据对象属性。

1.0

类型

array<string|int, mixed>