Der Martin: php8: count()

Beitrag lesen

Hallo,

Ab php8 wird ja die count-Funktion nur noch bei auch tatsächlich "countable" Elementen (Arrays, countable objects) akzeptiert, ansonsten wirft sie einen Fehler raus.

das mag stimmen, ich habe es jetzt weder praktisch noch theoretisch verifiziert. Aber ich wäre auch nie auf die Idee gekommen, count() für etwas anderes als ein Array zu benutzen. Was sollte dann das Ergebnis sein? Welche Semantik würde dahinter stehen?

Habe mir nun überlegt, weil ich count() sooo oft benutzt habe und count() eigentlich immer in Zusammenhang mit Arrays nutze, die entweder mit einem oder mehreren Elementen gefüllt sind oder eben leer, d.h. ggf. auch nicht vorhanden sind, die php-count-Funktion gegen eine eigene Funktion countMyFunct() auszutauschen.

Wofür? Du schreibst selbst, dass du count() "eigentlich immer" auf Arrays anwendest. Welchen Mehrwert hätte also eine solche Funktion?

Spricht da etwas gegen, was ich womöglich vergesswen haben könnte?

Nichts dagegen, aber IMO auch nichts dafür.

Und Zusatzfrage:

Wäre meine Regex zum Auffinden der php-counts() korrekt oder geht das besser?

~\scount\s*\(\s*\$~

Du setzt voraus, dass vor dem Bezeichner count ein Whitespace steht. Was ist mit sowas:

foo($theArray,count($theArray));

Also am Anfang besser \b (Word boundary) anstatt \s nehmen. Und das optionale Whitespace am Ende deines Musters ist keine Kunst, das kann weg.

Einen schönen Tag noch
 Martin

--
In Massachusetts gilt heute noch per Gesetz, dass man nicht zu Bett gehen darf, ohne vorher zu baden.
Außerdem verbietet ein anderes Gesetz das Baden am Sonntag.
Darf man also in der Nacht von Sonntag auf Montag nicht ins Bett?