2017-05-23 6 views
1

Ich habe nur eine Frage -> ist es gut, alle Parameter mit Standardwerten in einer Funktion definiert zu haben. Ich denke, es ist eine schlechte Übung, aber ich habe ein wenig Streit mit meinem Kollegen.Immer haben Standardwerte in Funktionsdeklaration

So ist entweder:

public function getTestByUser($int_user_id, $limit, $offset) 

oder

public function getTestByUser($int_user_id = 0, $limit = 0, $offset = null)

besser/schöner?

Und warum denkst du so.

Vielen Dank im Voraus.

+1

es wird Sie davor bewahren, unbeabsichtigte Ergebnisse zu bekommen - aber auch die Verarbeitungsfehler verbergen, die Ihnen viele Dinge beibringen könnten. – marmeladze

+0

Für Aufruf der Funktion denke ich 'public function getTestByUser (int_user_id = 0, $ limit = 0, $ offset $ = null)' Das ist besser mit ** Argumente Wert Standard ** Denn wenn wir nicht Variablenwert übergeben Als Funktionsparameter nimmt es den Standardwert – Nidhi

Antwort

2

Es hängt von Ihren Bedürfnissen ab. Die Verwendung von Standardwerten für Funktionsvariablen ist eigentlich keine schlechte Übung.

Sie sollten keine Variablentypen als Namen verwenden. Sie können die Skalartypdeklarationsfunktion von PHP7 verwenden.

z:

public function getTestByUser(int $userId, int $limit = 0, int $offset = null) 

Nicht‘vergessen declare(strict_types=1); nach oben Ihre PHP-Datei hinzuzufügen. Verwenden Sie streng definierte Variablentypen, um Ihren Code solider zu machen.

+0

Ich stimme deinem Punkt zu, aber warum sollte eine userId 0 sein? Ich würde lieber den "Verarbeitungsfehler" beim Aufruf der Funktion falsch nehmen, anstatt Ergebnisse zu erhalten, von denen ich nicht weiß, woher sie kommen. – Dewstar

+1

Richtig, Sie sollten keinen Standardwert für eine userId verwenden. Ich habe den Code repariert. Verwenden Sie keinen Standardwert, wenn eine Variable obligatorisch ist und ohne einen Wert nicht funktioniert (z. B. Benutzer-ID) –

Verwandte Themen