Parameter bei Funktionsaufruf leer lassen

Steusi

Nasenbär
Leute ist ja fast schon peinlich, aber ich weiß es wirklich nicht mehr :-(

Ich habe eine Funktion:

PHP:
function tab_Abschnitt($showname,$tab,$id,$Bezeichnung = "Bezeichnung",$select = "",$multi = "") {


}

So nun möchte ich diese Funktion aufrufen, ich brauch die ersten 3 und den letzten Parameter ich dachte man kann die standardparameter leer lassen, aber da lag ich wohl falsch kann mir bitte einer meinen kläglichen Versuch richtig stellen:

PHP:
tab_Abschnitt("Name","tabName","idName", , ,"on");
Fehler:
Parse error: syntax error, unexpected ','

DANKE
 
Ich dachte das geht nur so:

PHP:
tab_Abschnitt("Name","tabName","idName","Bezeichnung","","on");

Ansonsten schreib das $multi in deiner Funktion nach vorne

PHP:
function tab_Abschnitt($showname,$tab,$id,$multi = "",$Bezeichnung = "Bezeichnung",$select = "") {

} 

tab_Abschnitt("Name","tabName","idName","on");
 
Ich würde null im Falle eines fehlenden Werts übergeben. null selber bedeutet nämlich „kein Wert“. Deine Funktion muss dann damit natürlich auch etwas anfangen können.
 
Ein leerer String klappt leider nicht er überschreibt $Bezeichnung, auch NULL klappt leider nicht, also muss ich es doch wieder folgendermaßen schreiben:

PHP:
tab_Abschnitt("Name","tabName","idName","Bezeichnung","","on");
Habe ich sonst auch so gemacht, aber ich dachte immer es geht viel einfacher?

Warum
PHP:
NULL
nicht klappt, verstehe ich aber auch nicht ganz. Na gut ich danke euch für euer echo :D
 
Ja, er überschreibt ihn. Aber das ist doch vernünftig?

Es handelt sich um einen optionalen Parameter, d. h. sobald ein Wert angegeben wird, überschreibt er ihn. Dabei ist es gleichgültig, was übergeben wird.

Optionale Parameter sollte man möglichst an den Schluss legen, um sie auch weglassen zu können.

Den leeren String oder NULL muss deine Funktion verarbeiten können, z. B. mit [phpf]is_null[/phpf] prüfen. falls ja, neuer Wert.
 
Ich habe ja geschrieben, dass deine Funktion den Wert null und seine dortige Bedeutung verstehen müsse, dass dann der Standardwert genommen werden soll. Dazu müsstest du einfach den Datentyp innerhalb der Funktion prüfen und gegebenenfalls den Standardwert verwenden:
PHP:
function tab_Abschnitt($showname, $tab, $id, $Bezeichnung=null, $select=null, $multi=null) {
	if (is_null($Bezeichnung)) {
		$Bezeichnung = "Bezeichnung";
	}
	if (is_null($select)) {
		$select = "";
	}
	if (is_null($multi)) {
		$multi = "on";
	}
	// ?
}
 
Zurück