Hello Bob,

  that's definitively wrong, actually there must be something wrong with
your code. The '|' is to ensure that the parameter is optional. Thus if you
moit the param it's return value is untouched which means you have to
initaialize the returned zval * to null before passing its address to the
parsing functions. The only way "unknown" gets send back is when you
use an unhandled spec. But you are using "O" or did you actually missread
and took zero? (which would be plain bullshit)

marcus

Thursday, October 27, 2005, 5:47:36 PM, you wrote:

> I tried the "|!O" and that really hoses things.

> The | gets processed in zend_parse_va_args and removed (spec is
> incremented), so that "!O" get sent to zend_parse_arg_impl. Inside of
> zend_parse_arg_impl, the ! gets set to char c and spec_walk gets incremented
> which makes the check for the null operator fail and also makes the check
> for arg type check the ! in the switch case. The result is that "unknown"
> got sent as the parameter to the function. Not sure if this would be
> classified as a bug, but it doesn't work for trying to accept a null type
> hinted parameter in C.

> I'll keep playing around with parameter combinations and see what works.

> Thanks

> Bob Silva


> -----Original Message-----
> From: Marcus Boerger [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, October 27, 2005 12:06 AM
> To: Bob Silva
> Cc: internals@lists.php.net
> Subject: Re: [PHP-DEV] Accept null type hint in C

> Hello Bob,

> Thursday, October 27, 2005, 8:51:18 AM, you wrote:

>> Hi,

>> Since NULL typehints are allowed in userland, how would I go about it in
> C?

>> I have ZEND_ARG_OBJ_INFO(0, obj, ZObject, 1) which has allow null set on.

>> Then in the method:

>> if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &objA,
>> pow_ce_ZObject) == FAILURE) {

> Use "|!O" or "|!o" instead. '!' allows NULL and sets the return value in
> c-land to NULL.

> marcus


>> If I pass NULL, it fails on the grounds that it isn't a ZObject.

>> Also,

>> Could someone explain the purpose of the zend_parse_method_parameters
>> function as opposed to using the zend_parse_parameters?

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to