잠시 동안 get_object_vars
을 사용했습니다. 항상 객체의 공개 속성 만 반환하지만 갑자기 보호 된 vars를 반환합니다. 어떻게 그렇게 될수 있니? 그것은 코드 get_object_vars가 보호 된 속성을 반환하는 이유는 무엇입니까?
print_r($row);
print_r(get_object_vars($row));
반환
Data_model_Accounting Object
(
[get_external:protected] => 1
[put_external:protected] => 1
[delete_external:protected] => 1
[post_class:protected] => 1
[external_field_const:protected] => Array
(
[type] => Array
(
[0] => LEDGER
[1] => DEBTOR_LEDGER
[2] => CREDITOR_LEDGER
[3] => DEBTOR_INVOICE
[4] => CREDITOR_INVOICE
)
)
[external_field_condition_unset:protected] => Array
(
[invoice_id_] => Array
(
[type] => Array
(
[mode] => not_in
[values] => Array
(
[0] => DEBTOR_INVOICE
[1] => CREDITOR_INVOICE
)
)
)
[invoice_time_due] => Array
(
[type] => Array
(
[mode] => not_in
[values] => Array
(
[0] => DEBTOR_INVOICE
[1] => CREDITOR_INVOICE
)
)
)
)
[table:protected] =>
[predata:protected] => Array
(
)
[data:protected] => Array
(
)
[external:protected] => 1
[put_error:protected] =>
[action_mode:protected] =>
[Shell:protected] =>
[access_admin_primary:protected] => 1
[get_admin_external:protected] =>
[put_admin_external:protected] =>
[delete_admin_external:protected] =>
[id] => 19
[time] => 1362787200
[type] => DEBTOR_LEDGER
[account_id_] => 16000
[account_name] => Debitor
[accountoff_id_] => 16000
[accountoff_name] => Debitor
[vatcode_name] =>
[subaccount_id_] => 10
[subaccount_type] => DEBTOR
[subaccount_name] => hehe
[subaccountoff_id_] => 101
[subaccountoff_type] => DEBTOR
[subaccountoff_name] => oskel
[dimension_name] =>
[dimensionoff_name] =>
[currency_name] =>
[invoice_id_] =>
[invoice_time_due] => 0
[amount] => -165
[currency_amount] => -165
[currency_rate] => 1
)
Array
(
[table] =>
[predata] => Array
(
)
[data] => Array
(
)
[external] => 1
[put_error] =>
[action_mode] =>
[Shell] =>
[access_admin_primary] => 1
[get_admin_external] =>
[put_admin_external] =>
[delete_admin_external] =>
[id] => 19
[time] => 1362787200
[type] => DEBTOR_LEDGER
[account_id_] => 16000
[account_name] => Debitor
[accountoff_id_] => 16000
[accountoff_name] => Debitor
[vatcode_name] =>
[subaccount_id_] => 10
[subaccount_type] => DEBTOR
[subaccount_name] => hehe
[subaccountoff_id_] => 101
[subaccountoff_type] => DEBTOR
[subaccountoff_name] => oskel
[dimension_name] =>
[dimensionoff_name] =>
[currency_name] =>
[invoice_id_] =>
[invoice_time_due] => 0
[amount] => -165
[currency_amount] => -165
[currency_rate] => 1
)
괜찮 았지만 범위에 민감하지 않은 방식으로 모든 공개 속성을 검색하는 방법은 무엇입니까? – clarkk
@clarkk : 내 _whole_ 답변을 읽으십시오. 처음 몇 라인 만이 아닙니다. –
'클로저'를 사용하여 범위 컨텍스트를 깨뜨릴 수 있습니다. 뭔가 :'$ getPublic = function ($ var) {return get_object_vars ($ var); } $ publicProps = $ getPublic ($ row);' –