Почему я не могу напрямую получить доступ к массиву с индексом?

Я запутался, когда пытался получить доступ к элементу массива напрямую с его индексом. Думаю, я мог бы лучше объяснить это в кодировании:

У меня есть объект Employee Class, и я 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'] ); 

Оба дают сообщение об ошибке Неопределенный индекс: m_EmailAddress

И когда я пытаюсь сделать это таким образом, он отлично работает:

 display( $arrOfObj[$arrKeys[8]] ); 

Последний работает отлично, может ли кто-нибудь объяснить мне проблему.

  display( $arrOfObj[$arrKeys[11]] ); display( $arrOfObj['m_strEmailAddress'] ); 

Solutions Collecting From Web of "Почему я не могу напрямую получить доступ к массиву с индексом?"

Если объект преобразуется в массив, результатом является массив, элементами которого являются свойства объекта. Ключи – это имена переменных-членов, с несколькими заметными исключениями: целочисленные свойства недоступны; частные переменные имеют имя класса, добавленное к имени переменной; защищенные переменные имеют «*», добавленные к имени переменной. Эти предварительные значения имеют нулевые байты с обеих сторон.

http://php.net/manual/en/language.types.array.php#language.types.array.casting

Попробуйте var_dump(bin2hex($arrKeys[8])) для просветления. Также см. Пример в приведенном выше руководстве.