If we fix code readability I'd use what I used most and what's common in ZF2:

```
throw new InvalidArgumentException(sprintf(
    'Index must be of type integer, %s given',
    gettype($index)
));