Optionales Funktionsargument

Subwoover

Erfahrenes Mitglied
Nun eine Frage über die ich leider noch nie nachdachte...
Wie kann ich bei einer selbstdefinierten Funktion ein optionales argument einbauen?

function test($var1,$var2,$optional) {
...
}

ich muss ja trotzdem funktionsaufrufe so gestalten: test($var1,$var2,$optional);
nun möchte ich aber nur var1 und var2 angeben, und $optionale weglassen.
Klar -> kommt dann ein parse error, aber geht das irgendwie? dass argumente optional angebe oder so?

wird speziell bei komplizierteren Funktionen wichtig bei denen ich meist um die 20-30 argumente habe...
 
Das kannst du in dem Moment machen indem du diesem Argument einen Default-Wert zuweisst

PHP:
function test($var1,$var2,$optional='') {
  //...
}

So in der Art sollte das laufen...
20-30 Argumente? Das hört sich aber nicht sehr schön an ;-)
 
naja aufwendige funktionen eben :p

hm danke schonmal!
nur kann der wert dann alternativ durch funktionsaufruf auch übergeben werden oder muss ich den wert in der funktion dann durch global reinholen?
 
Naja ich würde sagen, dass man Funktionen nicht so voll stopfen sollte. Was währe denn wenn eine Automatisierungsmaschine soviele Variablen bekommen würde?! Höchstwahrscheinlich würde sie irgendwann einen Blue Screen bekommen :)

Setze die Variablen Global. Das ist die beste und effektivste Lösung.

In diesem Sinne
 
nun mehr als 30 argumente haben meine funktionen nicht,ist ne ausnahme die eine funktion mit sovielen args. :)
nun mit defaultwert lässt sich der wert die variable $optional also über funktionsaufruf auch übergeben? trotz defaultwert?

sorry kann derzeit nicht ausprobieren, bin gerade bei nem freund und der hat nix installed :p
 
Klar, du kannst im Prinzip alle als optional setzen... klappt 1a... alternativ nimm halt ein Array was du übergibts, in dem jeder Schlüssel einem Überpgabeparameter gleichkommt.

@krytpo: gloabl ist eher nur ein schmuddl-Workaround und kein sauberes Programmieren...das ist wie mach halt chmod 777 dann hast du schon Zugriff....
 
Zurück