深入研究对象

时间:2013-09-05 18:32:39

标签: php

我对物体不太好,所以我想知道是否有人可以帮助我。

我想要回显这个对象的数据,前一个级别也被归类为受保护,我已经解决了这个问题,但我似乎无法从内部的新对象中提取任何内容。

获取对象的原始代码:

$addrProp = $reflObj->getProperty('images');
$addrProp->setAccessible(true);
echo("<strong>Images:</strong>");
var_dump($addrProp->getValue($property));

输出:

array(17) {
  ["474sp1190714.jpg?APIKEY=homefromhome&hash=31b3f7b1b377184e8cb8fb64d434a11a4c3446c1091535ef6db4e119689a6372"]=>
  object(tabs\api\property\Image)#350 (7) {
    ["filename":protected]=>
    string(106) "474sp1190714.jpg?APIKEY=homefromhome&hash=31b3f7b1b377184e8cb8fb64d434a11a4c3446c1091535ef6db4e119689a6372"
    ["title":protected]=>
    string(8) "P1190714"
    ["alt":protected]=>
    string(0) ""
    ["url":protected]=>
    string(74) "http://hh.api.carltonsoftware.co.uk/image/normal/1000x750/474sp1190714.jpg"
    ["height":protected]=>
    int(750)
    ["width":protected]=>
    int(1000)
    ["apiPath":protected]=>
    string(35) "http://hh.api.carltonsoftware.co.uk"
  }
  ["474sp1190718.jpg?APIKEY=homefromhome&hash=31b3f7b1b377184e8cb8fb64d434a11a4c3446c1091535ef6db4e119689a6372"]=>
  object(tabs\api\property\Image)#351 (7) {
    ["filename":protected]=>
    string(106) "474sp1190718.jpg?APIKEY=homefromhome&hash=31b3f7b1b377184e8cb8fb64d434a11a4c3446c1091535ef6db4e119689a6372"
    ["title":protected]=>
    string(8) "P1190718"
    ["alt":protected]=>
    string(0) ""
    ["url":protected]=>
    string(74) "http://hh.api.carltonsoftware.co.uk/image/normal/1000x750/474sp1190718.jpg"
    ["height":protected]=>
    int(750)
    ["width":protected]=>
    int(1000)
    ["apiPath":protected]=>
    string(35) "http://hh.api.carltonsoftware.co.uk"
  }

任何单个输出(foreach或其他)的例子都很棒。谢谢!

1 个答案:

答案 0 :(得分:0)

如果属性受到保护,那么这意味着您无法公开访问它们。您需要创建自己的公众&#39; getter&#39;和“塞特犬”。例如,在您的&#39;标签\ api \ properties \ Image&#39;您可以执行以下操作:

// Because this is within the object, it has scope of the protected properties.
public function getTitle() {
    return $this->title;
}

然后你可以在对象上调用getTitle()来返回title属性中包含的字符串。

PHP网站上的这个页面可能对您有所帮助: http://php.net/manual/en/language.oop5.visibility.php