PHP从数组中回显对象的值

时间:2014-08-15 15:25:41

标签: php arrays echo

我有一个使用print_r打印的数组。

<?php
print_r ($this)
?>

我在浏览器中收到以下结果。

PackingListForm Object
(
    [objShipment:protected] => Shipment Object
        (
            [objCustomFieldArray] => 
            [intShipmentId:protected] => 38
            [strShipmentNumber:protected] => 1035
            [intTransactionId:protected] => 97
            [intFromCompanyId:protected] => 1
            [intFromContactId:protected] => 1
            [intFromAddressId:protected] => 1
            [intToCompanyId:protected] => 2
            [intToContactId:protected] => 3
            [intToAddressId:protected] => 2
            [intCourierId:protected] => 1
            [strTrackingNumber:protected] => 
            [dttShipDate:protected] => QDateTime Object
         )
)

现在我要打印/ echo intTransactionId。

我使用了跟随变量来回显结果,但我得到了未定义的变量。

<?php
$noted = $this->objShipment->intTransactionId;
print_r ($noted);
?>

我在浏览器中遇到了php异常错误。

未定义的GET属性或变量在&#39;发货&#39; class:intTransactionId 第33行:$ noted = $ this-&gt; objShipment-&gt; intTransactionId;

我的问题是如何回显/打印intTransactionId的值?

2 个答案:

答案 0 :(得分:0)

首先尝试将其转换为数组,然后更容易:),

$newArray = (array)$this;
print_r($newArray);//to see what can you get from there

// get_object_vars
$newArray = get_object_vars($object);

该对象来自类PackingListForm,如果您有权访问并查看是否有任何get()函数,请查看该类。

答案 1 :(得分:0)

intTransactionId是受保护的属性,这意味着您无法在类本身(或parennt类或子类)之外访问它。

我认为,异常是在__get(或其父类之一)中定义的Shipment魔术方法中引发的。尝试访问未设置属性(或不可访问的属性)时调用此方法。

请检查此行为。