Ich war verwirrt, als ich versuchte, direkt mit dem Index auf ein Array-Element zuzugreifen. Ich glaube, ich es bei der Codierung besser erklären könnte: -Warum kann ich nicht direkt auf das Array mit dem Index zugreifen?
ich ein Objekt der Klasse Employee habe und ich typisierte es Array und versuchte es so anzuzeigen:
$arrOfObj = (array) $objEmployee;
$arrKeys = array_keys($arrOfObj);
display($arrOfObj); // display() is a method in my library that prints an array in a mannered way.
das gibt mir die folgende Ausgabe : -
Array
(
[*m_UserId] => 1155
[*m_EmailPassword] =>
[*m_IsAssignedToManagementCompany] =>
[*m_ManagementCompanyId] =>
[*m_DepartmentId] => 3
[*m_DesignationId] => 4
[*m_EmployeeCompletedMonth] =>
[*m_EmployeeCompletedDay] =>
[*m_EmailAddress] =>[email protected]
------
------
)
Jetzt hier verstehe ich nicht diesen Stern (*). wenn meine Mitgliedsvariablen einfach sind wie m_UserId, m_EmialPassword und So weiter, woher dieser Stern kommt. und wenn ich versuche, das gleiche angezeigt mit folgenden 2-Anweisungen bekam ich einen Fehler: -
display($arrOfObj['*m_EmailAddress']);
oder
display($arrOfObj['m_EmailAddress']);
Beide geben die Fehlermeldung Undefined index: m_EmailAddress
Und wenn ich es auf diese Weise versuche, funktioniert es gut: -
display($arrOfObj[$arrKeys[8]]);
Der letzte funktioniert gut, kann mir jemand das Problem erklären.
display($arrOfObj[$arrKeys[11]]);
display($arrOfObj['m_strEmailAddress']);
Dann wie kann ich auf die Array-geschützten Tasten mit Stern zugreifen, und Sie haben nicht auf die letzten 3 Zeilen meiner Frage geantwortet. – ScoRpion
Wenn Sie den Schlüsselwert "real" von den extrahierten Schlüsseln erhalten, erhalten Sie offensichtlich den richtigen Schlüssel. Um einen korrekten Schlüssel selbst zu bilden, müssen Sie die NUL-Bytes wie folgt einschließen: '" \ 0 * \ 0m_strEmailAddress "'. – deceze
Es ist '" \ 0 * \ 0strThree "'. Doppelte Zeichenfolgen in Anführungszeichen und die NUL-Bytes sind um den Stern herum angeordnet. – deceze