Booleans are created just like longs, but have the type IS_BOOL . Allowed values in lval are 0 and 1 :
zval *new_bool; MAKE_STD_ZVAL(new_bool); new_bool- type = IS_BOOL; new_bool- value.lval = 1;