To do real parameter handling, use the zend_parse_parameters()
function.
You can make it an optional argument by putting a "|" in the
argument format string. Like this:
Here are all the possible modifiers in the argument format string:
'l' long (integer)
'd' double (floating point)
's' string
'b' boolean
'r' resource
'a' array
'o' any object
'O' specific object
'z' zval
'Z' zval-ref
'|' next arg is optional
'/' arg is separated if not a reference
'!' next arg returns null if type IS_NULL
So, for example, a function that takes a string, an integer, and array and an
optional resource would look like this: