Archive for February, 2009

Funktionen mit Vorgabe-Parametern

Tuesday, February 24th, 2009

Betrachtet man folgenden php-Code,

function addToArray($number, $array=array()) {
    $array[] = $number;
    return $array;
}
print_r(addToArray(1));
print_r(addToArray(2));
print_r(addToArray(3));

so erwartet man als php-Programmierer die Ausgabe:

Array
(
    [0] => 1
)
Array
(
    [0] => 2
)
Array
(
    [0] => 3
)

Man stelle sich vor, die Ausgabe wäre:

Array
(
    [0] => 1
)
Array
(
    [0] => 1
    [1] => 2
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

und man müsste, um das gewünschte Ergebnis zu erhalten, folgendes schreiben:

function addToArray($number, $array=false) {
    if ($array === false) {
        $array = array();
    }
    $array[] = $number;
    return $array;
}

Sieht umständlich und merkwürdig aus?

Ist Python-Style.