PHP 8.1 Zahlen in Arrays zusamenzählen funktioniert nicht mehr
Hallo miteinander,
Bei der Umstellung von PHP 7.4 auf 8.1 funktioniert in meinem Code das Zusammenzählen von Zahlen in Arrays nicht mehr.
Bei dieser Zeile bricht die Seite ab, aber ohne Fehlercode.
Funktionierendes Beispiel in 7.4
Ausgebe:
feld_i 8
feld_ix 3
feld_fka_i
feld_tka_i 2
feld_tot 13
Wie zu sehen ist, ist der Array-Inhalt $feld_fka[$i] leer ('').
Unter 7.4 wurde dies noch akzeptiert, unter 8.1 geht das nicht mehr.
Da diese Array-Inhalte später in einer Tabelle angezeigt werden, muss der Inhalt leer bleiben, also '' und nicht eine 0 enthalten, was dieses Problem wahrscheinlich lösen würde.
Wie kann ich das unkompliziert lösen ?
Gruss Andy
Bei der Umstellung von PHP 7.4 auf 8.1 funktioniert in meinem Code das Zusammenzählen von Zahlen in Arrays nicht mehr.
Bei dieser Zeile bricht die Seite ab, aber ohne Fehlercode.
Funktionierendes Beispiel in 7.4
echo "feld_i".$feld[$i]."<br>";
echo "feld_ix".$feld[$ix]."<br>";
echo "feld_fka_i".$feld_fka[$i]."<br>";
echo "feld_tka_i".$feld_tka[$i]."<br>";
$feld_tot[$i] = $feld[$i] + $feld[$ix] + $feld_fka[$i] + $feld_tka[$i];
echo "feld_tot".$feld_tot[$i]."<br>";
Ausgebe:
feld_i 8
feld_ix 3
feld_fka_i
feld_tka_i 2
feld_tot 13
Wie zu sehen ist, ist der Array-Inhalt $feld_fka[$i] leer ('').
Unter 7.4 wurde dies noch akzeptiert, unter 8.1 geht das nicht mehr.
Da diese Array-Inhalte später in einer Tabelle angezeigt werden, muss der Inhalt leer bleiben, also '' und nicht eine 0 enthalten, was dieses Problem wahrscheinlich lösen würde.
Wie kann ich das unkompliziert lösen ?
Gruss Andy
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4209280899
Url: https://administrator.de/contentid/4209280899
Ausgedruckt am: 13.11.2024 um 08:11 Uhr
5 Kommentare
Neuester Kommentar
Hi,
schau dir unbedingt den PHP Befehl: array_sum() an. Der löst dein Problem besser.
Ab PHP 8.x. bekommt man bei Typenlosen Variablen eine Fehlermeldung ins Log. Ich denke die Zeit von Variablen und Funktionen ohne Typen-Zuordnung ist in PHP demnächst vorbei (eigentlich jetzt schon, man kann es noch erfolgreich ignorieren). Es ist auch in PHP besser alle sauber zu deklarieren.
Gruß
@firefly
schau dir unbedingt den PHP Befehl: array_sum() an. Der löst dein Problem besser.
Zitat von @StefanKittel:
Besonders bei MySQL muss man bei Zahlen unterscheiden zwischen
Das PHP standardmäßig typenlos arbeitet ist da häufig ein Fluch.
Besonders bei MySQL muss man bei Zahlen unterscheiden zwischen
- Zahl
- NULL
- 0
Das PHP standardmäßig typenlos arbeitet ist da häufig ein Fluch.
Ab PHP 8.x. bekommt man bei Typenlosen Variablen eine Fehlermeldung ins Log. Ich denke die Zeit von Variablen und Funktionen ohne Typen-Zuordnung ist in PHP demnächst vorbei (eigentlich jetzt schon, man kann es noch erfolgreich ignorieren). Es ist auch in PHP besser alle sauber zu deklarieren.
Gruß
@firefly