Ich habe eine Funktion, die eine Ganzzahl zurückgibt. Ich möchte sie jedoch erweitern, um ihr einen neuen Parameter hinzuzufügen. Mit diesem Parameter müsste die Funktion jedoch ein Array zurückgeben.
Ich denke, es wäre auch eine schlechte Übung, die gesamte Funktion nur für 4-5 zusätzliche Zeilen zu kopieren und einzufügen.
Wenn möglich, würde ich eine Funktion aus einer anderen heraus aufrufen.
%Vor%Für die Funktion, die Sie im Sinn haben, ist dies möglicherweise nicht möglich, aber es könnte eine gute Option sein.
Als zusätzliche Anmerkung, da die Funktionen miteinander verwandt sind, würde ich sie als Klassenmethoden schreiben, um sie zusammen zu gruppieren.
Nimm Users
zum Beispiel; Ich brauche möglicherweise eine Funktion, um einen einzelnen Benutzer zu erhalten, und eine andere, um mehrere Benutzer zu erhalten. Es ist sinnvoll, diese Methoden in einer Klasse zu sammeln:
In PHP würde ich sagen "eine Funktion ein Ausgabetyp." (mit Ausnahme des Wertes FALSE
, der in PHP eine besondere Bedeutung hat). Wenn PHP das Überladen unterstützt, könnte das anders sein, tut es aber nicht. Aber hier ist eine Frage, warum nicht einfach eine Funktion haben, die beide Funktionen umhüllen?
Meiner Meinung nach ist es eine schlechte Übung, da es Probleme beim Arbeiten verursachen könnte, weil Sie nicht immer wissen werden, ob Sie von Ihrer Funktion ein int oder ein Array erhalten.
Gibt immer ein Array zurück (auch wenn es ein Element lang ist) und hat eine allgemeinere Funktion, die leicht zu handhaben ist.
Ich bin dagegen, Dinge als ein Array zurückzugeben, wenn Ihre Funktion mehr als einen Wert ändert, dann ist wahrscheinlich die von Ihnen geschriebene Funktion nicht die richtige und möglicherweise müssen Sie zwei Funktionen für dasselbe haben Grund für diesen sauberen und wartbaren Code und morgen muss eine neue Person nicht gehen und sich fragen, was das passiert, nachdem sie gesagt hat, dass es Fälle gibt, in denen Sie mehr als ein Argument modifizieren müssen. In diesem Fall nehmen Sie einen Anruf, um zu sehen, was die Methode macht und geben Sie den richtigen Wert und das andere Tal übergeben Sie es als Referenz und bearbeiten Sie es.
Hier ist ein Beispiel der Weitergabe durch Referenz ..
%Vor%Sie nennen hier einige Prinzipien:
Ich denke, all diese drei sind gültig. Deine Fragen klingen wie ein Trade zwischen 3. und 2. oder 1. Ich denke du solltest sie nicht gegeneinander tauschen.
Sie haben nicht viel darüber erzählt, was Sie mit dieser Funktion erreichen wollen, also völlig abstrahiert, ich kann die folgenden Pfade sehen:
Hmm, klingt ein bisschen nach cleverem Sprechen, aber ehrlich gesagt, Sie könnten Iteratoren entweder nicht richtig verwenden (foreach) oder Sie fangen an, eine "one function do it all" -Funktion zu erstellen, die Sie nicht sollten. Das wird den Code am Ende duplizieren.
Tags und Links class php function methodology