I got confused when I was trying to access an array element directly with its index. I guess I could explain it better in coding:-
I am having an object of Employee Class and I TypeCast it to array and tried to display it like this:
$arrOfObj = (array) $objEmployee;
$arrKeys = array_keys( $arrOfObj );
display( $arrOfObj ); // display() is a method in my library that prints an array in a mannered way.
this gives me the following output :-
Array
(
[*m_UserId] => 1155
[*m_EmailPassword] =>
[*m_IsAssignedToManagementCompany] =>
[*m_ManagementCompanyId] =>
[*m_DepartmentId] => 3
[*m_DesignationId] => 4
[*m_EmployeeCompletedMonth] =>
[*m_EmployeeCompletedDay] =>
[*m_EmailAddress] =>[email protected]
------
------
)
Now here I dont understand this Star(*). when my member variables are simple like m_UserId, m_EmialPassword and So on where from it gets this Star. and when I try to display the same with following 2 statements I got an error :-
display( $arrOfObj['*m_EmailAddress'] );
or
display( $arrOfObj['m_EmailAddress'] );
Both give the Error message Undefined index: m_EmailAddress
And when i try to do it this way It works fine :-
display( $arrOfObj[$arrKeys[8]] );
The last one works fine, Can anyone explain me the problem.
display( $arrOfObj[$arrKeys[11]] );
display( $arrOfObj['m_strEmailAddress'] );
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…