使用PHP访问对象中的数组
问题描述:
如何使用PHP访问以下对象中的TXN_ID?下面是该对象的print_r的:使用PHP访问对象中的数组
$txn_object = $txn_params[last_payment];
error_log(print_r($txn_object,true));
我在错误日志中得到这样的:
EE_Payment Object
(
[_props_n_values_provided_in_constructor:protected] => Array(
[PAY_ID] => 4168
[TXN_ID] => 746919
[STS_ID] => PAP
[PAY_timestamp] => 2017-08-29 14:06:26
[PAY_source] => CART
[PAY_amount] => 24.000
[PMD_ID] => 11
[PAY_gateway_response] => submitted_for_settlement
[PAY_txn_id_chq_nmbr] => 96g71gxv
[PAY_po_number] =>
[PAY_extra_accntng] =>
[PAY_details] =>
)
)
我已经尝试了一些东西,但似乎无法获取价值,但回来空白:
$txn_object->_props_n_values_provided_in_constructor[0]->TXN_ID
答
停止使用print_r
对对象进行逆向工程并阅读文档/源代码。
您有一个EE_Payment
对象,它是Event Espresso库的一部分。 The source of this class is available here,并显示了一个名为TXN_ID
的方法来返回交易ID。
$id = $txn_object->TXN_ID();
会给你你所需要的。
答
您不能访问从对象(类)之外TXN_ID
元素,因为_props_n_values_provided_in_constructor
属性为protected
。
- 公开范围,使可从任何地方,其他类和对象的实例变量/功能。
- ,当你想你的变量/函数是在只有自己的类可见私人范围。
- 保护范围当你想让你的变量/函数在扩展当前类的所有类中可见时,包括 父类。
https://stackoverflow.com/a/4361582/5465663
看看进入到PHP documentation。
你得到了什么错误信息? – Timurib