配列要素にそのインデックスで直接アクセスしようとしたときに混乱しました。私はコーディングでそれをよりよく説明できると思います:-
私はEmployeeClassのオブジェクトを持っていて、それを配列にTypeCastし、次のように表示しようとしました。
$arrOfObj = (array) $objEmployee;
$arrKeys = array_keys( $arrOfObj );
display( $arrOfObj ); // display() is a method in my library that prints an array in a mannered way.
これにより、次の出力が得られます:-
Array
(
[*m_UserId] => 1155
[*m_EmailPassword] =>
[*m_IsAssignedToManagementCompany] =>
[*m_ManagementCompanyId] =>
[*m_DepartmentId] => 3
[*m_DesignationId] => 4
[*m_EmployeeCompletedMonth] =>
[*m_EmployeeCompletedDay] =>
[*m_EmailAddress] =>showket.mca@gmail.com
------
------
)
今ここで私はこの星(*)を理解していません。メンバー変数がm_UserId、m_EmialPasswordなどのように単純な場合、このスターはどこから取得されますか。次の2つのステートメントで同じものを表示しようとすると、エラーが発生しました:-
display( $arrOfObj['*m_EmailAddress'] );
また
display( $arrOfObj['m_EmailAddress'] );
どちらもエラーメッセージUndefinedindex:m_EmailAddressを表示します
そして、私がこのようにそれをやろうとすると、それはうまくいきます:-
display( $arrOfObj[$arrKeys[8]] );
最後のものはうまくいきます、誰かが私に問題を説明できますか?
display( $arrOfObj[$arrKeys[11]] );
display( $arrOfObj['m_strEmailAddress'] );