当我试图用它的索引直接访问一个数组元素时,我感到很困惑。我想我可以在编码中更好地解释它:-
我有一个员工类的对象,我将它的类型转换为数组并尝试像这样显示它:
$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 等等,它从哪里得到这个 Star。当我尝试使用以下 2 条语句显示相同内容时,出现错误:-
display( $arrOfObj['*m_EmailAddress'] );
或者
display( $arrOfObj['m_EmailAddress'] );
两者都给出错误消息Undefined index: m_EmailAddress
当我尝试这样做时,它工作正常:-
display( $arrOfObj[$arrKeys[8]] );
最后一个工作正常,谁能解释我的问题。
display( $arrOfObj[$arrKeys[11]] );
display( $arrOfObj['m_strEmailAddress'] );