I wrestled with the same thing as Wade, and came up with a hybrid: positional for the required parameters, and an array at the end for optinal ones.
eg:
function clsDB( $db_server, $db_name, $options ){\n if( $options['debug_level'] > 0 ){\n $debug_level = $options['debug_level'];\n }\n if( $options['test_mode'] > 0 ){\n $test_mode = $options['debug_level'];\n }\n etc ...\n}