Suchen
Inside Forum
Nützliche Links




 
phpforum.de bei Facebook
 
phpforum.de bei Twitter
 

Zurück   PHP Forum: phpforum.de > PHP > PHP

PHP Alles rund um PHP

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 08.06.2018, 09:00
mikexmagic mikexmagic ist offline
Besucher
 
Registriert seit: 29.10.2015
Beiträge: 61
Standard Individuell auf Objekt-Eigenschaften zugreifen??

Hallo Community,

ich habe eine recht kurze Frage. Und bevor ich jetzt anfange eine Funktion zu basteln, gibt es vielleicht einen kurzen Weg für mein Problem:

Ich habe ein Object namens $Daten
Ich brauche daraus Infos, auf die ich so zugreifen könnte:
PHP Quellcode:
$ergebnis = $daten->Sub1->Sub2


Der Sub-Pfad liegt mir als String vor:
PHP Quellcode:
$subPath = "Sub1.Sub2"


Das alles klappt natürlich nicht:
PHP Quellcode:
$ergebnis = $daten->$subPath
$ergebnis = $daten[$subPath]
$ergebnis = $daten->str_replace(".","->",$subpath)


Das Problem an der Situation: $subPath kann auch leer sein oder auch tiefer gehen (mehr Ebenen).

Gibt es da einen kurzen Weg oder baue ich eine komplizierte Schleifen-Funktion??

Danke für Eure Hilfe :-)
Mit Zitat antworten
  #2  
Alt 08.06.2018, 10:18
chrishorn chrishorn ist offline
Engagierter Besucher
 
Registriert seit: 21.11.2011
Beiträge: 628
Standard AW: Individuell auf Objekt-Eigenschaften zugreifen??

built-in gibt es das nicht. Sonderlich kompliziert ist das aber auch nicht, kann man recht zügig mit Rekursion lösen (geht bestimmt auch iterativ).
Mit Zitat antworten
  #3  
Alt 08.06.2018, 10:20
Don T. Worry Don T. Worry ist offline
Engagierter Besucher
 
Registriert seit: 29.03.2012
Beiträge: 533
Standard AW: Individuell auf Objekt-Eigenschaften zugreifen??

Zitat:
Gibt es da einen kurzen Weg
Nicht dass ich wüßte.

Zitat:
baue ich eine komplizierte Schleifen-Funktion
eine einfache Schleife/Array-Funktion tuts auch.

Mal ein Beispiel für Arrays (ohne Validierung)
PHP Quellcode:
$value = array_reduce(explode('.', $path), function($data, $key) {
    return $data[$key];
}, $array);
__________________
“Just think of how stupid the average person is, and then realize half of them are even stupider!” [George Carlin]

Geändert von Don T. Worry (08.06.2018 um 10:27 Uhr)
Mit Zitat antworten
  #4  
Alt 08.06.2018, 10:35
mikexmagic mikexmagic ist offline
Besucher
 
Registriert seit: 29.10.2015
Beiträge: 61
Standard AW: Individuell auf Objekt-Eigenschaften zugreifen??

Danke... Habs so gelöst:
PHP Quellcode:
$pathArray = explode(".",$subPath);

$ergebnis = $daten;

foreach ($pathArray as $level) {
    $ergebnis = $ergebnis->$level;
}


War ja doch weniger Code als vorher gedacht
Mit Zitat antworten
  #5  
Alt 08.06.2018, 11:58
Don T. Worry Don T. Worry ist offline
Engagierter Besucher
 
Registriert seit: 29.03.2012
Beiträge: 533
Standard AW: Individuell auf Objekt-Eigenschaften zugreifen??

Denk daran, dass das ein runtime error gibt, wenn der Pfad in dem Object so nicht existiert.

Außerdem ist am Ende in $daten nicht mehr das Ausgangsobjekt, da Objekte per Referenz übergeben werden.
__________________
“Just think of how stupid the average person is, and then realize half of them are even stupider!” [George Carlin]

Geändert von Don T. Worry (08.06.2018 um 12:00 Uhr)
Mit Zitat antworten
  #6  
Alt 08.06.2018, 13:32
mikexmagic mikexmagic ist offline
Besucher
 
Registriert seit: 29.10.2015
Beiträge: 61
Standard AW: Individuell auf Objekt-Eigenschaften zugreifen??

Zitat:
Zitat von Don T. Worry Beitrag anzeigen
Denk daran, dass das ein runtime error gibt, wenn der Pfad in dem Object so nicht existiert.

Außerdem ist am Ende in $daten nicht mehr das Ausgangsobjekt, da Objekte per Referenz übergeben werden.
Ja, hab ich aufm Schirm. Danke

Das Object ist ein SOAP-Result und 'sollte' daher immer passen. Einen SOAP-Fehler fange ich vorher bereits ab.
Mit Zitat antworten


Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Auf Eigenschaften eines Objekts einer Klasse zugreifen jstephan PHP 10 18.02.2015 22:47
Klassenproblem - externer Funktionsaufruf Objekt-Eigenschaften ray_light PHP 2 24.06.2008 20:24
auf anderes Objekt zugreifen Bernd456 PHP 3 27.10.2007 12:09
Auf Objekt zugreifen an einem Beispiel FYoshi PHP 5 07.08.2007 23:04
Objekt clonen inkl. desen Eigenschaften (PHP5) visiocom PHP 3 14.09.2006 08:08


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:52 Uhr.


Powered by vBulletin® Version 3.8.8 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC