+ Antworten
Ergebnis 1 bis 4 von 4
  1. #1
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,824

    Standard Array and string offset access syntax with curly braces is deprecated

    Hallo Leute,

    bei der neuen PHP-Version führt folgender Code(-Ausschnitt) zu der Fehlermeldung:
    Array and string offset access syntax with curly braces is deprecated...

    PHP-Code:
                                 $data json_decode($Output[3]);
                                           If (isset(
    $data->{'9019'})) {
                            
    $ResultArray[9019] = $data->{'9019'};
                        }
                        If (isset(
    $data->{'3311'})) {
                            
    $StateArray $data->{'3311'}{'0'};
                            foreach (
    $StateArray as $Key => $State) {
                                
    $ResultArray[$Key] = $State;
                            }
                        }
                        elseif (isset(
    $data->{'3300'})) {
                            
    $StateArray $data->{'3300'}{'0'};
                            foreach (
    $StateArray as $Key => $State) {
                                
    $ResultArray[$Key] = $State;
                            }
                        }
                        elseif (isset(
    $data->{'3312'})) {
                            
    $StateArray $data->{'3312'}{'0'};
                            foreach (
    $StateArray as $Key => $State) {
                                
    $ResultArray[$Key] = $State;
                            }
                        }
                        elseif (isset(
    $data->{'15015'})) {
                            
    $StateArray $data->{'15015'}{'0'};
                            foreach (
    $StateArray as $Key => $State) {
                                
    $ResultArray[$Key] = $State;
                            }
                        } 
    Nach meiner Google-Recherche soll man einfach die geschwungenen Klammern durch die eckigen ersetzen.
    Irgendetwas muss dabei aber übersehen haben, den dieses führt bei mir dann zu einem Syntax-Fehler.
    Wo liegt mein Fehler?

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

  2. #2
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    10,444

    Zeig doch bitte das Script was den Syntax Fehler bringt und auch einen JSON-String damit man überhaupt versteht wie die Daten ursprüngliche aufgebaut sind.
    Michael
    on Win10VM (ESXi): I7, 32GB RAM, HW-RAID5, 2xSat | HW: pivccu + ca.130 Geräte (ca.550ch), EM1000, CUL, 1Wire, FritzBox Cable, Android Phone + Tablet, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, RoundCube, Win2016 Ess., MediaPortal, Kodi

  3. #3
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,824

    Hallo Michael,

    mein Gedankengang: der Fehler konnte ja erst einmal nichts mit den ankommenden Daten selbst zu tun haben, weil er ja schon beim Laden des Moduls auftrat. Ich habe mir die Funktion dann mal in die Console geholt.
    Herausgekommen ist jetzt dieser Syntax der dann offenbar mit allen PHP-Version funktioniert:
    PHP-Code:
    $data json_decode($Output[3], true);
                
    print_r($data);
                If (isset(
    $data[9019])) {
                    
    $ResultArray[9019] = $data[9019];
                }
                
                If (isset(
    $data[3311])) {
                    
    $StateArray $data[3311][0];
                        foreach (
    $StateArray as $Key => $State) {
                            
    $ResultArray[$Key] = $State;
                        }
                }
                elseif (isset(
    $data[3300])) {
                    
    $StateArray $data[3300][0];
                        foreach (
    $StateArray as $Key => $State) {
                            
    $ResultArray[$Key] = $State;
                        }
                }
                elseif (isset(
    $data[3312])) {
                    
    $StateArray $data[3312][0];
                        foreach (
    $StateArray as $Key => $State) {
                            
    $ResultArray[$Key] = $State;
                        }
                }
                elseif (isset(
    $data[15015])) {
                    
    $StateArray $data[15015][0];
                        foreach (
    $StateArray as $Key => $State) {
                            
    $ResultArray[$Key] = $State;
                        }
                } 
    Vielen Dank für den Tipp!

    Joachim
    Geändert von Nall-chan (10.08.20 um 21:04 Uhr)
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

  4. #4
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    10,444

    Deswegen meine Frage nach den Daten, weil das hier ist ja eher ein Zugriff auf ein Objekt mit Namen 9019: $data->{'9019'}
    Die Fehlermeldung, sofern sie sich halt auf diese Zeile bezog, sagt aber Array oder String.
    Wenn es schon immer ein Array war, dann wäre schon immer $data[9019] korrekt gewesen.
    Wäre es aber im json wirklich ein Objekt mit Namen 9019 gewesen, hättest du alles richtig gemacht und die Fehlermeldung führt einen auf die falsche Fährte.
    Michael
    on Win10VM (ESXi): I7, 32GB RAM, HW-RAID5, 2xSat | HW: pivccu + ca.130 Geräte (ca.550ch), EM1000, CUL, 1Wire, FritzBox Cable, Android Phone + Tablet, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, RoundCube, Win2016 Ess., MediaPortal, Kodi

Ähnliche Themen

  1. MQTT - Daten (String) in Array zerlegen
    Von hardlog im Forum Skripte, PHP, SQL
    Antworten: 2
    Letzter Beitrag: 05.10.19, 17:03
  2. Antworten: 7
    Letzter Beitrag: 30.04.18, 18:18
  3. String in Array
    Von CarnivoreD im Forum Skripte, PHP, SQL
    Antworten: 7
    Letzter Beitrag: 05.04.18, 22:09
  4. Aus String ein Array erstellen....
    Von drapple im Forum Skripte, PHP, SQL
    Antworten: 2
    Letzter Beitrag: 26.12.16, 09:29