why does get_object_vars return protected properties?
<p>I have used <code>get_object_vars</code> for a while now.. It always only returns public properties of an object, but suddenly it also returns protected vars?!? How can that be? It has never done that before</p>

<h1>code</h1>

<pre><code>print_r($row);
print_r(get_object_vars($row));
</code></pre>

<h1>returns</h1>

<pre><code>Data_model_Accounting Object
(
    [get_external:protected] =&gt; 1
    [put_external:protected] =&gt; 1
    [delete_external:protected] =&gt; 1
    [post_class:protected] =&gt; 1
    [external_field_const:protected] =&gt; Array
        (
            [type] =&gt; Array
                (
                    [0] =&gt; LEDGER
                    [1] =&gt; DEBTOR_LEDGER
                    [2] =&gt; CREDITOR_LEDGER
                    [3] =&gt; DEBTOR_INVOICE
                    [4] =&gt; CREDITOR_INVOICE
                )

        )

    [external_field_condition_unset:protected] =&gt; Array
        (
            [invoice_id_] =&gt; Array
                (
                    [type] =&gt; Array
                        (
                            [mode] =&gt; not_in
                            [values] =&gt; Array
                                (
                                    [0] =&gt; DEBTOR_INVOICE
                                    [1] =&gt; CREDITOR_INVOICE
                                )

                        )

                )

            [invoice_time_due] =&gt; Array
                (
                    [type] =&gt; Array
                        (
                            [mode] =&gt; not_in
                            [values] =&gt; Array
                                (
                                    [0] =&gt; DEBTOR_INVOICE
                                    [1] =&gt; CREDITOR_INVOICE
                                )

                        )

                )

        )

    [table:protected] =&gt; 
    [predata:protected] =&gt; Array
        (
        )

    [data:protected] =&gt; Array
        (
        )

    [external:protected] =&gt; 1
    [put_error:protected] =&gt; 
    [action_mode:protected] =&gt; 
    [Shell:protected] =&gt; 
    [access_admin_primary:protected] =&gt; 1
    [get_admin_external:protected] =&gt; 
    [put_admin_external:protected] =&gt; 
    [delete_admin_external:protected] =&gt; 
    [id] =&gt; 19
    [time] =&gt; 1362787200
    [type] =&gt; DEBTOR_LEDGER
    [account_id_] =&gt; 16000
    [account_name] =&gt; Debitor
    [accountoff_id_] =&gt; 16000
    [accountoff_name] =&gt; Debitor
    [vatcode_name] =&gt; 
    [subaccount_id_] =&gt; 10
    [subaccount_type] =&gt; DEBTOR
    [subaccount_name] =&gt; hehe
    [subaccountoff_id_] =&gt; 101
    [subaccountoff_type] =&gt; DEBTOR
    [subaccountoff_name] =&gt; oskel
    [dimension_name] =&gt; 
    [dimensionoff_name] =&gt; 
    [currency_name] =&gt; 
    [invoice_id_] =&gt; 
    [invoice_time_due] =&gt; 0
    [amount] =&gt; -165
    [currency_amount] =&gt; -165
    [currency_rate] =&gt; 1
)
Array
(
    [table] =&gt; 
    [predata] =&gt; Array
        (
        )

    [data] =&gt; Array
        (
        )

    [external] =&gt; 1
    [put_error] =&gt; 
    [action_mode] =&gt; 
    [Shell] =&gt; 
    [access_admin_primary] =&gt; 1
    [get_admin_external] =&gt; 
    [put_admin_external] =&gt; 
    [delete_admin_external] =&gt; 
    [id] =&gt; 19
    [time] =&gt; 1362787200
    [type] =&gt; DEBTOR_LEDGER
    [account_id_] =&gt; 16000
    [account_name] =&gt; Debitor
    [accountoff_id_] =&gt; 16000
    [accountoff_name] =&gt; Debitor
    [vatcode_name] =&gt; 
    [subaccount_id_] =&gt; 10
    [subaccount_type] =&gt; DEBTOR
    [subaccount_name] =&gt; hehe
    [subaccountoff_id_] =&gt; 101
    [subaccountoff_type] =&gt; DEBTOR
    [subaccountoff_name] =&gt; oskel
    [dimension_name] =&gt; 
    [dimensionoff_name] =&gt; 
    [currency_name] =&gt; 
    [invoice_id_] =&gt; 
    [invoice_time_due] =&gt; 0
    [amount] =&gt; -165
    [currency_amount] =&gt; -165
    [currency_rate] =&gt; 1
)
</code></pre>
