Joopi
[PHP] Auswertung von stdClass - Druckversion

+- Joopi (https://forum.hermann-splitthoff.de)
+-- Forum: Wissenswertes (https://forum.hermann-splitthoff.de/forumdisplay.php?fid=1)
+--- Forum: Programmieren (https://forum.hermann-splitthoff.de/forumdisplay.php?fid=6)
+--- Thema: [PHP] Auswertung von stdClass (/showthread.php?tid=71)



Auswertung von stdClass - Joopi - 07-01-2023

Über eine foreach-Schleife ist es relativ einfach ein assoziatives Array auszugeben. Standardmäßig könnte es so aussehen:


PHP-Code:
<?php
    
// Aufnahme der Daten einer IMAP-Verbindung in eine Variable, die ein assoziatives Array speichert
    
$imap imap_check($mbox);

    
// Ausgabe des assoziativen Array mit seinen Properties für key und value
    
foreach ($imap as $detailkey => $detailwert) {
        echo $detailkey .": " $detailwert "\n";
    }
?>

Die Ausgabe von var_dump() sieht so aus:

Zitat:object(stdClass)#1 (5) {
  ["Date"]=>
  string(37) "Tue, 11 Jan 2022 16:36:02 +0100 (CET)"
  ["Driver"]=>
  string(4) "imap"
  ["Mailbox"]=>
  string(94) "{das sind die Verbindungsinformationen und daher nicht für die Öffentlichkeit bestimmt}INBOX"
  ["Nmsgs"]=>
  int(10)
  ["Recent"]=>
  int(0)
}

Mein Problem war nun, dass mich im Grunde genommen nur die Anzahl der im Postfach vorhandenen Mails interessiert hat. Kann man auf anderem Wege ebenfalls ermitteln, aber mit imap_check wollte ich es einfach versuchen. Das Schlüsselfeld dazu ist: Nmsgs

Es hat einige Zeit gedauert, bis mir klar war, wie ich diesen einen Wert herausholen kann, ohne alle anderen Werte auch aufzulisten oder zu erhalten. Die Anzahl der Mails brauche ich für eine for-Schleife, also muss ich diesen Wert separieren. Das ganze Array nützt mir nichts und ist hinderlich.

Letztlich ist es recht einfach, wenn man weiß, mit was man es zu tun hat. Die Codezeile, die mir den gewünschten Wert präsentiert, ist.

PHP-Code:
<?php echo "Das ist die Anzahl der enthaltenen Mails: " $imap->Nmsgs "\n"?>

Da es sich, soweit ich das verstanden habe, bei stdClass um ein Objekt handelt, muss ich hier anders vorgehen als ich es eigentlich gewohnt bin. Objekte sind auch in anderer Hinsicht und in anderen Vorhaben noch nicht meine Freunde - es wird aber so langsam.

Als Ergebnis der obigen Codezeile wird dann folgendes ausgegeben.

Zitat:Das ist die Anzahl der enthaltenen Mails: 10

Und damit ist der Wert für die Anzahl der Mails im Postfach ermittelt und kann im nachfolgenden Programmcode genutzt werden. Die Übernahme in eine Variable ist dann auch für mich recht einfach.