Hello,
Mit jedem erneuten Funktionsaufruf wird $counter erhöht.
Das ist dann besonders sinnlos, wenn man die Funktion im selben Script mehrfach verwenden will.Nö. Man kann ja auch mit mehreren Aufrufen die Anzahl der Dateien in mehreren Verzeichnissen abfragen wollen.
Hier hätte man die gewünschten Ergebnisse besser als Referenz durchreichen sollen. Und weil es zwei sind, die der OP ursprünglich mal ins Auge gefasst hatte, hätte er sie als Array-Referenz durchreichen können.
Wenn schon Referenz dann als Funktionsargument und da kann man auch zwei Einzelwerte nehmen.
Ja, sach ma! Hast Du irgendwas genommen heute? :-)
Davon rede ich doch die ganze Zeit oder wie meinst Du, würde ich an eine Funktion Werte übergeben? Hast Du mich schon jemals mit "global" arbeiten sehen? Selbstverständlich werden die Werta als Funktionsargumente weitergegeben. Und das geht dann am besten als Referenz, da man sie ja auch zurück haben will. Ob das nun ein Array wird oder zwei einzelen Parameter, das hängt davon ab, wie sehr man sich sicher ist, dass die Funktion sich nicht noch weiterentwicklen soll...
Das Arbeiten mit varianten Argumentblöcken ist nicht neu aber in PHP durch die Übergabe per namen (und nicht per Offset) besonders bequem.
Und zu dem anderen Punkt:
NEIN, es ist Schwachsinn, hier static-Variablen zu benutzten.
Die Funktion wäre dann nicht frei nutzbar, sondern hätte einen Reentranzpunkt.
Ich scheue mich immer vor solchen Sprüchen, aber: MAN MACHT SOWAS NICHT.
So, nun erklär Du mir, warum es besonders geschickt ist und die Funktion universell verwendbar macht, wenn man static benutzt. Da bin ich jetzt aber gespannt.
Und sonst wünsche ich Dir eine gute Nacht :-)
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg