#44885 [Opn->Bgs]: grouped optional args is no longer supported

From: Date: Fri, 02 May 2008 07:28:13 +0000
Subject: #44885 [Opn->Bgs]: grouped optional args is no longer supported
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-772@lists.php.net to get a copy of this message
ID: 44885 Updated by: bjori@php.net Reported By: colder@php.net -Status: Open +Status: Bogus Bug Type: Doc Build problem Operating System: Irrelevant PHP Version: Irrelevant New Comment: > if (only the first arg is optional) { > make them all optional together; > } That will break bunch of array_*() argument listing were the optional parameter is the 3rd of 5. This was an error in the XSL which was fixed in PhD. The markup for rand() is simply wrong. This function can be used in two different ways, either by passing no parameters or two. The correct way to do this is having two methodsynopsis, one that takes no arguments and another one that takes two (requiered) arguments. -Hannes Previous Comments: ------------------------------------------------------------------------ [2008-05-01 23:54:59] philip@php.net The trouble with that is this: int rand ([ int $min [, int $max ]] ) versus this: int rand ([ int $min , int $max ] ) and rand() follows the latter because it requires either 0 or 2 arguments and not 1. PhD creates the first if choice="opt" is used twice. So basically we need a syntax for each and it appears both our dsssl and xsl based build systems treated this differently. The BC approach would add the following to PhD: if (only the first arg is optional) { make them all optional together; } But it's a strange syntax and ideally we'd come up with some better markup. ------------------------------------------------------------------------ [2008-05-01 23:54:21] colder@php.net Well no, that will make it rand([min[, max]]), which is also wrong, it's rand([min, max]) as in either the two or none. ------------------------------------------------------------------------ [2008-05-01 23:53:13] colder@php.net title made no sense ------------------------------------------------------------------------ [2008-05-01 23:27:17] cellog@php.net correct is: <methodparam choice="opt"><type>int</type><parameter>min</parameter></methodparam> <methodparam choice="opt"><type>int</type><parameter>max</parameter></methodparam> ------------------------------------------------------------------------ [2008-05-01 21:41:27] colder@php.net Description: ------------ php.net/rand The proto is : rand([min, max]); xml is : <methodparam choice="opt"><type>int</type><parameter>min</parameter></methodparam> <methodparam><type>int</type><parameter>max</parameter></methodparam> With PhD, it ends up being: int rand ([ int $min ], int $max ) So, either 1) the renderer don't handle groups of optional args anymore, or 2) there is a new syntax to group optional args together and the xml should be fixed. Regards ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=44885&edit=1

« previous php.doc.bugs (#772) next »