[英]Access array in PHP object
我有以下PHP对象,但正在努力使数组项脱离对象。
exampleBatch Object (
[file_path:protected] =>
[title:protected] =>
[description:protected] =>
[link:protected] =>
[items:protected] => Array ( )
[raw:protected] => data/example
[feed_nid:protected] =>
Array (
[0] => Array ( [path] => data/example/example/ [filename] => file.csv )
[1] => Array ( [path] => data/example/example/ [filename] => file.csv )
[2] => Array ( [path] => dexampleata/example// [filename] => file.csv ) )
[current_item:protected] =>
[created] => 0
[updated] => 0
[total:protected] => Array ( )
[progress:protected] => Array ( [fetching] => 1 [parsing] => 1 [processing] => 1 ) )
我需要访问包含三个键的数组,它是一些后期处理的数据。
获取阵列的最佳方法是什么?
如果您可以编辑该类,则可以将您需要的属性更改为公共属性,或者为其编写一个getter方法:
function getItems() {
return $this->items ;
}
否则,如果您不能编辑类本身,则可以扩展它,因为所需的属性受到保护,这意味着子类可以访问它们:
class YourClass extends ThatClass {
public function getItems {
//parent $items really
return $this->items ;
}
}
然后,您需要创建YourClass的实例而不是ThatClass并从中获取items数组。
对于您想要的任何其他受保护的属性类似。
您对象的feed_nid
属性是受保护的,因此无法从对象外部对其进行访问。
在对象类内部,应编写如下函数:
function getFeedNid()
{
return $this->feed_nid;
}
最初的意图显然是使该属性在内部保持安全并不受外部修改,因此我将使用此方法,而不是例如将protected $feed_nid
声明更改为public
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.