zend_parse_parameters()のフォーマット一覧 (書きかけ)

とりあえずテキストに書き出してみただけの状態です。そのうち日本語で表にします。

identifier: expected type       required argument number and types
'l': integer                    1: long *
'd': float                      1: double *
's': binary string              2: char **, int *
'S': binary string (strict)     2: char **, int *
'u': Unicode string             2: UChar **, int *
'U': Unicode string (strict)    2: UChar **, int *
't': string (by semantics)      3: zstr *, int *, zend_uchar *
'T': string (no conversion)     3: zstr *, int *, zend_uchar *
'b': boolean                    1: zend_bool *
'r': resource                   1: zval **
'a': array                      1: zval **
'h': array                      1: HashTable **
'o': object                     1: zval **
'O': object (class specified)   2: zval **, zend_class_entry *
'C': string (class name)        1: zend_class_entry **
'f': callback                   2: zend_fcall_info *, zend_fcall_info_cache *
'z': any                        1: zval **
'Z': any                        1: zval ***
'*': varargs (optional)         2: zval ****, int *
'+': varargs (required)         2: zval ****, int *
note: varargs (zval ***) should be freed with efree()

special:
'x': unicode ? 'u' : 's'

suffixes: note                          additional argument number and types
'|': rests are optional                 0
'/': separate if not null               0
'&': alternate form (for 's')           1: UConverter *
'!': return null if null                0
'^': return original type (for string)  1: zend_uchar *