Re: Default value if parameter is not passed in
| From: | Curt Zirzow | Date: | Thu, 28 Oct 2004 01:36:00 +0000 |
| Subject: | Re: Default value if parameter is not passed in | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-200509@lists.php.net to get a copy of this message | ||
* Thus wrote Quanah Gibson-Mount:
> Right now, I'm tweaking a function that has a bunch of optional parameters.
> I would like to be able to set a default value for the very last one if it
> is not passed in. This essentially looks like:
>
>
> if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|ssl", &link, &arg1,
> &arg1_len, &arg2, &arg2_len, &long, &long_len) == FAILURE { RETURN_FALSE; }
>
> if (!long || long==NULL) {
> long=DEFAULT_VALUE;
> }
>
> However, what I found when printing out the value of "long" is that it has
> been set to 1?! I imagine this was by the zend_parse_parameters function.
> Is there a way to disable it from setting values to optional parameters?
1. Read http://cvs.php.net/php-src/CODING_STANDARDS
2. Studying source code on how current functions behave
3. ask questions like this in either internals@lists.php.net or
pecl@lists.php.net
btw, the "l" flag expects long to be a long type, and it doesn't
assign the long_len variable.
HTH,
Curt
--
Quoth the Raven, "Nevermore."