Как наиболее кратко и понятно передать в один аргумент функции одну из двух переменных, которые могут быть либо массивом, либо логическим выражением?
Возможно вы неправильно подходите к самой задаче. Я бы избавился вообще от функции, которая по понедельникам принимает boolean, по вторникам - массив, а по остальным дням недели - объект, так как эта функция берёт на себя слишком много ответственности, и перешёл бы вместо неё к трем разным функциям, первая из которых принимает в качестве аргумента boolean, вторая - массив, а третья - объект. 
Код пишется не только для выполнения, но и для чтения другими разработчиками, и подобная функция явно не способствует скорости изучения кода и внесения в него изменений.
Может вам подойдет тернарный оператор
Причем короткая версия
f($x ?: $y)
В этом случает если $x имеет значение TRUE, то в f передастся $x и $y в другом случае.
Примерыtrue ?: 'test' - будет true
false ?: 'test' - будет 'test'
'' ?: true - будет true
'test' ?: true - будет 'test'

// Комбинирование
false ?: [] ?: 'test' - будет 'test'