Couldn't you just shift this arg off and `array_shift($args) ?: []` and avoid shenanigans with current() and possibly incorrect array pointers from the caller?