Можно ли не прописывать переменные в функцию если их нет?
ну так задай параметры по дефолту
function delitem($iditem, $login, $kolvo, $linefile, $catalog, $effect34 = null, $effect33 = null)
Можно передавать в функцию в качестве параметра массив, в котором уже определять необходимые переменные:

function myFunc( $a, array $b = [ ] ) {
...
  ...$y = $b[ 'varY' ] ?? 'defaultValue';
...
}

myFunc( 1, [ 'var2' => 2, 'var3' => 3, ... 'varX' => 'X' ] );

Через массив передавать список только нужных переменных.