2017-08-29 41 views
-2

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 
+0

エラーメッセージはありますか? – Timurib

答えて

2

オブジェクトをリバースエンジニアリングし、ドキュメント/ソースを読むには、print_rを使用しないでください。

Event Espressoライブラリの一部であるEE_Paymentオブジェクトがあります。 The source of this class is available hereであり、TXN_IDというメソッドがあり、トランザクションIDが返されます。

$id = $txn_object->TXN_ID(); 

が必要です。

3

_props_n_values_provided_in_constructorプロパティがprotectedあるので、あなたは、オブジェクト(クラス)の外からTXN_ID要素にアクセスすることはできません。

  • 公共の範囲は、他のクラスとオブジェクトのインスタンス、どこからでもその変数/関数が利用できるようにします。
  • 変数/関数を独自のクラスでのみ表示する場合は、プライベートスコープを使用します。
  • 親クラスを含む現在のクラスを拡張するすべてのクラスで変数/関数を表示する場合は、保護されたスコープを使用します。

https://stackoverflow.com/a/4361582/5465663

PHP documentationにに見てみましょう。

関連する問題