PHP对象,如何引用?

PHP对象,如何引用?,php,Php,如何指向cid并获取值 $item-> array(1) { [0]=> object(__PHP_Incomplete_Class)#4 (4) { ["__PHP_Incomplete_Class_Name"]=> string(7) "Product" ["_param:protected"]=> array(40) { ["pid"]=> string(3) "540" ["cid"]=&

如何指向cid并获取值

$item->

array(1) {
  [0]=>
  object(__PHP_Incomplete_Class)#4 (4) {
    ["__PHP_Incomplete_Class_Name"]=>
    string(7) "Product"
    ["_param:protected"]=>
    array(40) {
      ["pid"]=>
      string(3) "540"
      ["cid"]=>
      string(2) "22"
      ["sid"]=>
      string(1) "1"
      ["tid"]=>
      string(1) "9"
      ["sales_volume"]=>
      string(1) "0"
      ["preorder_volume"]=>
      string(1) "0"
      ["viewed"]=>
      string(1) "0"
      ["weight"]=>
      string(4) "0.00"
      ["delivery_type"]=>
      string(6) "postal"
      ["cash_price"]=>
      string(4) "0.00"
      ["coupon_price"]=>
      string(4) "0.00"
      ["coupon_require"]=>
      NULL
      ["member_price"]=>
      NULL
      ["discount_code"]=>
      NULL
      ["special_offer"]=>
      string(1) "0"
      ["lan"]=>
      string(13) "eng,tchi,schi"
      ["special_offer_price"]=>
      string(4) "0.00"
      ["special_offer_begin"]=>
      string(19) "2010-09-06 11:25:05"
      ["special_offer_end"]=>
      string(19) "2010-09-06 11:25:05"
      ["bonus_point"]=>
      string(1) "0"
      ["tax"]=>
      string(4) "0.00"
      ["release_date"]=>
      string(19) "2010-09-06 11:25:05"
      ["begin_datetime"]=>
      string(19) "2010-07-13 14:41:26"
      ["end_datetime"]=>
      NULL
      ["delivery_status"]=>
      string(4) "24hr"
      ["stock"]=>
      string(1) "0"
      ["status"]=>
      NULL
      ["discon"]=>
      string(1) "0"
      ["product_desc"]=>
      string(0) ""
      ["model_num"]=>
      string(8) "ATH-BT03"
      ["rating"]=>
      string(0) ""
      ["recycle_id"]=>
      array(2) {
        [0]=>
        string(1) "5"
        [1]=>
        string(2) "20"
      }
    }
    }
    ["doc:private"]=>
    object(DOMDocument)#5 (0) {
    }
  }
}

看起来像一个非常奇怪的混合对象

如果我没有弄错,它是一个数组,其中包含一个对象,该对象具有一个名为_param的属性,该属性是一个具有键cid的数组

$item[0]->_参数['cid']


_param成员被声明为受保护,只能从类本身内部或从父类或继承类访问。从类外部访问此变量的方法是创建并调用“getter”方法,如下所示:

function getCid() {
    return $this->_param['cid'];
}

类属性_param受保护,您无法从外部访问此属性。
尝试使用反射。您可以在这里找到如何使私有/受保护的财产公开。可能会有帮助。

不,不是这样的。如果有可能的话,它会破坏保护成员的目的,不是吗?改为查找
Reflection
类。如果一个类的成员的值需要对除自身/所有者以外的所有对象都是只读的,那么该类如何?拥有一个getter方法是完全合理的,不是吗?这是正确的,但是getter方法也必须是这个类的成员。也许你实际上就是这个意思。我可能误解了。当然这就是我的意思,不过我有点不清楚。我还不恰当地假设hkvega01可以访问类源。这个问题没有说明他们是否有访问权限,所以我不应该这样假设。对象是
\uuuu PHP\u complete\u Class\u Name
类型,这通常意味着它是从会话加载的对象或以其他方式序列化的对象,但实际的类代码在反序列化时没有加载。