Ähm.
Code:
function kontobuchung($art, $menge, $uid, $loseart = null) {
if($loseart === true) {
// nur normal-lose
}elseif($loseart === false) {
// nur bonus-lose
}else{
// beide (standard)
}
}
Und was heißt hier "unsauber"? Das ist grundlegendes php-standard. O_o
Mit $loseart = null leg ich erstmal fest, dass der standard-wert, wenn der letzte parameter nicht angegeben wird, "Null" ist. Es handelt sich hierbei um KEIN boolean-wert.
Mit $loseart === true (dem 3fach-istgleich) verhinder ich, dass $loseart als boolean angesehen wird, wenn man 1 z. b. angibt.
Ebenso bei === false, wenn 0 angegeben wird. Es wird nur True oder False erlaubt.
Wird keines der beiden erkannt, standard.
Somit können alte addons die übliche Funktionsweise verwenen und neue addons den parameter hinzufügen. Darüber hinaus lassen sich so alte addons schnell und einfach damit erweitern.
Von wegen unsauber ...