Halihallo Viennamade
Mit func_num_args(), func_get_arg() und func_get_args() habe ich bis jetzt nicht gearbeitet, ich lese mir die Dinger eben durch. Von Ressourcen steht da gar nichts.
Wie siehsts aus mit Ressourcenverbrauch. Wenn der nicht in die Höhe schnellt, sehe ich keinen Grund für selbst geschriebene Funktionen mit fixer Parameteranzahl. Oder ist das ein Blödsinn?
Um es einfach zu sagen: Es ist gar nichts anderes, als ein
Funktionsaufruf mit "vordefinierten Parametern". Es verbraucht also
(in etwas) genau dieselben Ressourcen. Das einzige, was bei einer
Funktion mit vordefinierten Parametern anders ist, ist, dass die
Parameter mit entsprechendem Index in der lokalen Variable mit
entsprechendem Namen der Funktionsparameterliste referenziert wird.
Etwas kryptographisch formuliert, hier ein Beispiel:
function test1() {
$t=func_get_arg(0);
// hier steht, was die Funktion ausführt
}
function test2($t) {
// hier steht, was die Funktion ausführt
}
Funktion test1 und test2 sind (bis auf das Faktum, dass PHP
"$t=func_get_arg(0)" selbstständig macht, dies ggf. auch geringfügig
performanter), dasselbe.
PHP Intern verwaltet die Parameter bei einem Funktionsaufruf stets
über in einem Stack/"Array", ob auf diese Parameter nun über
func_get_arg (gewissermassen wie bei einem Array: $func_args[1]),
oder über eine lokale "Referenzvariable" ($t im Beispiel test2($t))
ausliest, ist von Seiten der Performance kein grosser Unterschied.
Bezüglich der wertenden Aussage, ob du Funktionsparameter nun nur
mehr über func_get_arg(s) auslesen willst, da sonst die Anzahl der
Funktionsparameter begrenzt wird... Nun, verwende Funktionen mit
fixer Parameteranzahl, falls dies Sinn macht und verwende Funktionen
mit variabler Parameterzahl, falls das Sinn macht. Aber fixiere dich
nicht auf eine Umsetzung, denn jede hat ihre Vorzüge und Nachteile!
Viele Grüsse
Philipp