mmh. But why do you need to differenciate between no options an empty array options?
We will in the near future get rid of all the zpp love of 'z' and use a or H (when we can drop 5.2)... Wait. does zpp only support default value as NULL not empty array?

I was thinking a! would result in an empty array, so this would always be an array(), not null.. looks like my line of thinking is wrong.. We'll always need to check if we have an option before using it, and not HASH_OF() blindly :(