Wenn Sie einen Wert aus einer Variablen lesen wollen, müssen Sie wissen, welchen Ausdruck Sie formulieren müssen, um auf diesen Wert zuzugreifen.
Für einen einfachen Variablenwert ist dies einfach, Sie nehmen einfach den Variablennamen und greifen auf ihn als Variable zu, indem Sie ihm das Präfix $
Zeichen:
var_dump($variable);
Este ist hier dokumentiert .
Dies funktioniert jedoch nur für einfache Datentypen wie string
ou integer
. Es gibt auch zusammengesetzte Datentypen, nämlich array
y object
. Sie können weitere Datentypen enthalten, sei es einfach oder zusammengesetzt. Im PHP-Handbuch können Sie lernen, wie man Zugriff auf die Werte eines Arrays und wie können Sie sie von einem Objekt aus aufrufen . Ich denke, das wissen Sie schon ein bisschen, also nur, weil ich es hier verlinkt habe.
Wenn Sie das gelernt haben, können Sie das dann kombinieren. Wenn z.B. ein Array in einem Objekt vorhanden ist und darin eine Zeichenkette enthalten ist, die Sie erhalten möchten, müssen Sie die $
Zeichen und den Variablennamen mit den benötigten Accessors, Eigenschaftsnamen und Array-Schlüsseln. Dann erhalten Sie Ihren Wert. Die Daten, die Sie gepostet haben, zeigen, dass Sie ein Objekt haben, das einige andere Objekte und Arrays hat, und am Ende finden Sie den Variablennamen.
Ein Beispiel für eine Kombination:
var_dump($variable->handler->view[0]->_field_data);
Dies beruht auf den von Ihnen oben angegebenen Daten. $variable
ist der Ort, an dem Sie beginnen, ->
wird verwendet, um auf Objektmitglieder zuzugreifen, die dann benannt werden müssen (wie ein Name für eine Variable): handler
. Wie Sie in Ihrer Debug-Ausgabe gesehen haben, ist handler
ein Objekt ist, müssen Sie wieder die ->
zum Zugriff auf die view
Mitglied davon.
Jetzt view
ist anders, weil es ein Array ist. Sie greifen auf die Werte eines Arrays zu, indem Sie []
und den Schlüssel dort hineinstecken. Der Schlüssel in meinem Beispiel ist eine Zahl, 0
. Und da der Wert dieses Array-Eintrags wieder ein Objekt ist, müssen Sie im nächsten Schritt ->
wieder.
Sie können dieses Spiel fortsetzen, bis Sie das Element erreichen, das Sie interessiert. Die Debug-Ausgabe, die Sie bereits haben, hilft Ihnen, den Ausdruck zu schreiben, der den Wert zurückgibt. Möglicherweise ist es das:
$field_image->handler->view->result[0]->_field_data['nid']['entity']->field_image['und'][0]['filename']
Aber ich kann das hier auf meinem System nicht in vollem Umfang validieren.
Wenn man etwas herausfinden will, ist es jedoch hilfreich, die folgenden Informationen zu nutzen var_dump
da Sie den Ausdruck Schritt für Schritt erweitern können, bis Sie das Element finden. Wenn Sie einen Fehler machen, sehen Sie das sofort. Manchmal hilft es, ein die();
nach dem var_dump
Anweisung, um die Antwort nicht zu beenden, bevor sie zu viele andere Daten enthält, die die Informationen vor Ihnen verbergen würden. Das devel-Plugin bietet zusätzliche Debug-Routinen, um Werte prominent zu dumpen.
1 Stimmen
SimpleXML: Wenn Sie eine
print_r
eines SimpleXMLElement-Objekts, werden hier Antworten gegeben: Wie erhält man Werte von Xml-Elementen? y Zugriff auf @Attribut aus SimpleXML0 Stimmen
Nochmals vielen Dank, hakre. Tolle Antworten und Kommentare, und ich beziehe mich immer noch hin und wieder auf diesen Beitrag, wenn ich in den Code eintauche, da ich meistens mit UX- und designbezogenen Aufgaben beschäftigt bin.
0 Stimmen
Untersuchen Sie Ihre print_r-Ausgabe interaktiv (kudos @mario): array.include-once.org
0 Stimmen
Beginnen Sie von oben und wenn Sie von einem Objekt zur nächsten Ebene gehen, verwenden Sie einen Pfeil ("->") und wenn Sie von einem Array gehen, setzen Sie das Element der nächsten Ebene in eckige Klammern.