Ist es möglich Parameter mit Standardwerten in einem php (5) Funktionsaufruf zu überspringen?

7

Ich habe das:

%Vor%

Ist so etwas möglich:

%Vor%     
sprugman 23.02.2009, 21:00
quelle

5 Antworten

4

Gefunden, das ist wahrscheinlich immer noch richtig:

Ссылка

Kurze Antwort: Nein.

Lange Antwort: Ja, auf verschiedene kluge Wege, die oben beschrieben sind.

    
sprugman 23.02.2009, 21:04
quelle
12

Wenn es Ihre Funktion ist, könnten Sie null als Platzhalter verwenden und den Standardwert später in der Funktion setzen:

%Vor%

Dann können Sie sie überspringen, indem Sie null :

verwenden %Vor%     
Gumbo 23.02.2009 21:13
quelle
5

Wenn es sich um eine eigene Funktion anstelle eines von PHPs Kern handelt, könnten Sie Folgendes tun:

%Vor%     
ceejayoz 23.02.2009 21:13
quelle
1

Sie haben die Antwort ziemlich genau gefunden, aber der akademische / hochrangige Ansatz ist Funktion currying , den ich ehrlich gesagt nie gefunden habe sehr nützlich, aber es ist nützlich zu wissen, existiert.

    
Tom Ritter 23.02.2009 21:07
quelle
0

Sie können einige Macken anwenden, indem Sie entweder alle Argumente übergeben, wie es ein Array wie ceejayoz vorschlägt, oder etwas überkomplizierten Code, der analysiert func_get_args () und fusioniert mit einer Liste von Standardwerten. Um es nicht zu kopieren, müssen Sie Objekte und Eigenschaften verwenden. Um schließlich alle Arten von Werten übergeben zu können (ohne NULL oder FALSCH auszuschließen, indem sie als Signal für die Standardparamatersetzung verwendet werden), müssen Sie einen Dummy-Spezialtyp DefaultParam deklarieren. Ein anderes Minus ist, dass Sie die Namen und Standardwerte in der Funktionsdeklaration duplizieren müssen, wenn Sie Typhinweise oder Hilfe in einer IDE bekommen möchten.

%Vor%

Hinweis: Mit preserve_index = true erhalten Sie die zusätzlichen Argumente, um von ihrem ursprünglichen Index zu starten.

    
ArticIceJuice 17.11.2015 21:24
quelle

Tags und Links