Re:
Dann würde die Funktion bei Vorhandensein eines mitgelieferten Parameter auf die restlichen 3 verzichten?
Sie verzichtet auch jetzt schon auf jedweden Parameter, da es default-Werte gibt. Die Funktion kann also auch ganz ohne Parameter aufgerufen werden. Wir ein Parameter übergeben, geschieht dies immer von links nach rechts.
Und auch falls ja, gibt es noch eine andere Lösung? Weil ich neben der alten Form (mit 1 Param) schon recht viele nach dem neuen Muster eingebaut habe. Also wäre auch das herumdrehen inzwischen recht arbeitsintensiv...
Funktionen haben ihren eigenen Namensraum. Sie können aber auf den globalen Namensraum zugreifen. Dies ließe sich auch nutzen:
<?php
$param3='kein default';
function test_neu(){
$param1=isset($GLOBALS['param1']) ? $GLOBALS['param1'] : 'default1';
$param2=isset($GLOBALS['param2']) ? $GLOBALS['param2'] : 'default2';
$param3=isset($GLOBALS['param3']) ? $GLOBALS['param3'] : 'default3';
$param4=isset($GLOBALS['param4']) ? $GLOBALS['param4'] : 'default4';
}
?>
Weiterhin ist auch denkbar immer nur einen Parameter zu übergeben, was auf Dein Problem sicher nicht anwendbar ist:
function test_neu($param=array()){
$c=count($param);
for($i=0;$i<$c;$i++){
if($param[$i]!=''){
// mach was mit $param[$i]
}
}
}
// Funktionsaufruf könnte dann etwa so aussehen:
test_neu(array(,,'bla',14));
Gruß aus Berlin!
eddi