Jörg: php8: count()

Beitrag lesen

Hallo Martin,

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.

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?

Ich fülle ab und an Arrays mit Elementen, falls vorhanden. Aber ohne zuvor das Array zu definieren, also:

$myArray[] = $bla;

wobei $bla z.b. aus einer db kommt und ggf. leer ist.

Und genau hier meckert php8, wenn ich dann einen count übers Array laufen lassen will.

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));

Stimmt. Gut, dass ich gerfagt habe.

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

\b ist gut.

Das Dollarzeichen sollte gar nicht für das Ende des Musters stehen, daher auch escaped. ich suche nach dem Dollarzeichen 😉

Jörg