WebWork Magazin - Design, Gestaltung, Online Medien, html

Webhosting Provider Domain

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- wie object stdClass prüfen und auslesen

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. FRagen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » wie object stdClass prüfen und auslesen - 26 Juli 2017 Antworten
wie object stdClass prüfen und auslesen
elster
Otto-Normal-Poster
Threadstarter




Beiträge: 61

Hallo,
könnte mir jemand sagen, wie ich auf 'city' zugreifen kann.
object(JForm)#329 (5) {
["data":protected]=>
object(JRegistry)#330 (1) {
["data":protected]=>
object(stdClass)#331 (2) {
["profile"]=>
object(stdClass)#344 (9) {
["city"]=>
string(0) ""
}}}}
Ich kapiere/sehe das irgendwie momentan nit :((
habe schon diverse Variationen ($profile->city, ...) probiert.
ich wollte checken, ob in den profile-arrays etwas enthalten ist
vielen Dank Grüße, elster

  Profil   Editieren   Zitieren
Ori
Mausakrobat




Beiträge: 163

Das sind ziemlich viele ineinander geschachtelte Objekte. Es könnte so gehen:

1:
$jformding->data->data->profile->city


Beachte aber, dass du nur protected-Zugriff auf die oberen beiden Eigenschaften hast. D.h. du musst dich sowohl in einer abgeleiteten Klasse von JForm als auch von JRegistry befinden, um darauf zugreifen zu können. Das ist aber vermutlich nicht möglich.

Stattdessen brauchst du dann entsprechende, abgeleitete Klasse, die dir die jeweiligen Eigenschaften zur Verfügung stellen:

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14:
class Eins extends JForm {
    public static function getData(JForm $jform) {
        return $jform->data;
    }
}
class Zwei extends JRegistry {
    public static function getData(JRegistry $jreg) {
        return $jreg>data;
    }
}

// Auslesen via
Zwei::getData(Eins::getData($jformding))->profile->city


Aber schön ist das nicht und vermutlich auch so nicht vom Erfinder der Klassen JForm und JRegistry gedacht. Und vielleicht darfst du die Klassen auch nicht ableiten, dann darfst du die Eigenschaften gar nicht erst auslesen.

  Profil   E-Mail   Website   Editieren   Zitieren
elster
Otto-Normal-Poster
Threadstarter




Beiträge: 61

Hi Ori,
Danke - dufte verständliche Antwort mit einem bisschen Hintergrund!

Mittlerweile hatte ich etwas gefunden.
1:
$fields = $this->item->profile->getFieldset('profile');
$this bedeutet doch, dass man noch Zugriff auf Klassenwerte hat.

Mit deinem Tipp ist nicht an das profil-array ranzukommen:
echo $JForm->data->data->profile->city; blieb leer. und
das vorgeschlagene Schema abgeleiteter Klassen ergab
1:
Catchable fatal error: Argument 1 passed to Eins::getData() must be an instance of JForm, null given, called in ... 
viele Grüße, elster

Diese Nachricht wurde geändert von: elster
  Profil   Editieren   Zitieren
Ori
Mausakrobat




Beiträge: 163

Genau, $this zeigt immer auf die aktuelle Instanz der Klasse, in der du gerade bist.

Der Wert von city ist tatsächlich ein leerer String. (Das steht in deiner print_r()-Ausgabe im ersten Beitrag.)

Wie die Variable mit deiner Instanz von JForm heißt, kann ich nicht raten. Ich habe sie $jformding getauft; den Variablennamen musst du durch den echten ersetzen.

  Profil   E-Mail   Website   Editieren   Zitieren
elster
Otto-Normal-Poster
Threadstarter




Beiträge: 61

Hi Ori,
1:
Zwei::getData(Eins::getData($this->item->profile))->city; 
gibt nichts aus, bleibt leer, obwohl was im array enthalten ist. Die Struktur sieht so aus (aus print_r):
ContactViewContact Object (
[state:protected] => JObject Object (
...
[profile] => JForm Object (
[data:protected] => JRegistry Object (
[data:protected] => stdClass Object (
[profile] => stdClass Object (
[city] => "downtown"
...
vielleicht ist da irgendwo in dem Framework noch was "gedeckelt" oder meine Variablennamen stimmen nicht?
Grüße, elster

  Profil   Editieren   Zitieren
Ori
Mausakrobat




Beiträge: 163

Ich blicke immer noch nicht ganz durch deine Objekte durch. Das ist die Ausgabe von print_r($this) und du bist in ContactViewContact (ein seltsamer Name für eine Klasse)?

Und ich muss nochmal darauf hinweisen, dass solch ein Zugriff mit Sicherheit nicht vom Erfinder der Klassen, die du benutzt, gewollt ist. Eigentlich solltest du auf anderem Weg Zugriff auf diese Eigenschaft haben. Da muss es doch irgendwo eine Doku geben…

  Profil   E-Mail   Website   Editieren   Zitieren
raiserle
Mausakrobat




Beiträge: 171

Naja, solange es protected ist, kann man es wie in einem Post weiter oben machen.
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14:
<?php
class ContactViewContact { # ich gehe mal davon aus, dass du selbst diese Klasse erstellt hast.
    # ansonsten , geh halt in den Quellcode und füge die Methode ein.... aber mein Vorredner
    # hatte es ja schon gesegt. Es sollte eine Methode geben, um auf city zugreifen zu können.

    # ......
    public function getCity()
    {
        return $this->state->profile->data->data->profile->city;
    }
    #......
}
?>

Warum und wieso man solche Strukturen schafft... ist mir zu entfernt... ;)
Aber probiers mal so - sollte gehen.


---
Irren is Menschlich

Wer andern eine Grube gräbt,
sollte darüber nachdenken,
ob sie tief genug ist!!!!

Kameradschaft ist, wenn der
Kamerad schafft !!!!

  Profil   Editieren   Zitieren
elster
Otto-Normal-Poster
Threadstarter




Beiträge: 61

hi raiserle, Danke!

Ja so ähnlich. Habs mittlerweile gelöst. Es ist schon eine Weile her, aber in etwa so:
$fields = $this->item->profile->getFieldset('profile');
und
foreach ($fields as $profile) {
und
$profile->city } ...
Grüße

  Profil   Editieren   Zitieren
 

Antworten


Forum » PHP & MySQL » wie object stdClass prüfen und auslesen

Aktuelle Beiträge zur Hilfe im Forum für Homepage - wie object stdClass prüfen und auslesen im Forum Homepage Hosting AntwortenLetztes Posting
Schnell viel Geld ohne Aufwand verdienen, mit dem Smartphone
in "PHP & MySQL"
2 11.07.2017 14:32 von Wonestan
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji
php preg_replace_callback für dynamischen Link
in "PHP & MySQL"
0 05.07.2016 11:02 von Rm21
CMS für Online Shop
in "PHP & MySQL"
19 29.06.2016 14:49 von raiserle
PHP Code verschlüsseln
in "PHP & MySQL"
20 21.02.2016 21:25 von Kilian1
migrierter WP-Blog läuft nicht ...
in "PHP & MySQL"
0 04.02.2016 02:01 von Oxygon
migrierter WP-Blog läuft nicht ...
in "PHP & MySQL"
0 04.02.2016 02:01 von Oxygon
Fertige PHP Scripte für Ihre Homepage
in "PHP & MySQL"
0 16.12.2015 12:02 von PHP-Script-Shop
Callback Befehl ++ Session ID Eintrag +++
in "PHP & MySQL"
2 16.12.2015 11:57 von PHP-Script-Shop
PHP befehl ausführen
in "PHP & MySQL"
9 16.12.2015 11:52 von PHP-Script-Shop
suche online community script
in "PHP & MySQL"
3 16.12.2015 11:51 von PHP-Script-Shop
Text basierender Chat
in "PHP & MySQL"
5 16.12.2015 11:51 von PHP-Script-Shop
Counter mit PHP
in "PHP & MySQL"
2 16.12.2015 11:50 von PHP-Script-Shop
Wo bekommt man fertige PHP Scripte her?
in "PHP & MySQL"
12 16.12.2015 11:42 von PHP-Script-Shop



Besucher : 5209698    Heute : 1267     Gestern : 1446     Online : 29     26.7.2017    22:44      2 Besucher in den letzten 60 Sekunden        
alle 30.00 Sekunden ein neuer Besucher
Die letzten 30 Referrer :

1 15:48 - google.de/search - Handy einer Freundin orten kostenlos
2 15:46 - google.de/search - Handy einer Freundin orten kostenlos
3 5:34 - google.de/search - freunde orten ohne zustimmung
4 21:03 - google.de/search - e mail verbindungsproleme hotmail
5 15:17 - bing.com/search - COLT Ausfall London
6 14:44 - bing.com/search - hotmail probleme
7 13:30 - avira.search.ask.com/web - braun exact 6 universal offnen
8 11:46 - google.de/search - gmx ausgefallen
9 8:13 - bing.com/search - strato login
10 21:09 - bing.com/search - amazon
11 18:44 - google.de/search - handynummer orten ohne zustimmung
12 16:03 - google.de/search - ortung handy von meinem frau
13 8:09 - bing.com/search - strato login
14 13:26 - bing.com/search - csgo betting site template language:DE
15 12:25 - bing.com/search - betriebssystem bsd kompartibel zu windows
16 8:55 - bing.com/search - willkommenstext für sharepoint
17 23:08 - google.de/search - was ist mit skype los
18 7:23 - https://bing.com/search - meine frau stand ort auwendig machen
19 6:55 - https://bing.com/search - meine frau stand ort auwendig machen
20 23:28 - google.co.uk/search - webseiten erstellen ausbildung
21 23:17 - google.de/search - technische störung bei gmx
22 23:01 - google.de/search - technische störung bei gmx
23 23:00 - google.de/search - technische störung bei gmx
24 18:45 - bing.com/search - hotmail server probleme
25 6:45 - google.de/search - sportida server error
26 3:16 - cn.bing.com/search - Professional man mannager in USA mail
27 22:05 - https://google.de/search - discardmail
28 19:45 - cn.bing.com/search - Professional man mannager in USA mail
29 11:58 - bing.com/search - Server Engergieverbrauch 400 Watt
30 13:00 - bing.com/search - html email onmouseover farbwechsel button

Nach oben