Doc #52909 [Opn->Asn]: ReflectionMethod::getParameters() return incorrect number of arguments
| From: | aharvey@php.net | Date: | Thu, 23 Sep 2010 04:27:46 +0000 |
| Subject: | Doc #52909 [Opn->Asn]: ReflectionMethod::getParameters() return incorrect number of arguments | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-5113@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=52909&edit=1
ID: 52909
Updated by: aharvey@php.net
Reported by: frederic dot hardy at mageekbox dot net
Summary: ReflectionMethod::getParameters() return incorrect
number of arguments
-Status: Open
+Status: Assigned
Type: Documentation Problem
-Package: Reflection related
+Package: PHAR related
Operating System: FreeBSD 8.0
PHP Version: 5.3.3
-Assigned To:
+Assigned To: aharvey
Block user comment: N
Previous Comments:
------------------------------------------------------------------------
[2010-09-22 23:44:20] tony2001@php.net
The docs and the comment in the sources are apparently wrong and need
fixing.
------------------------------------------------------------------------
[2010-09-22 23:17:15] frederic dot hardy at mageekbox dot net
Description:
------------
I'm using PHP 5.3.3 and PHP trunk under FreeBSD 8.0 p4.
I'm trying to retrieve arguments of phar::__construct() with
ReflectionMethod::getArguments().
Phar::__construct() take only 3 arguments, but my script return 4
arguments, as if PharData::__construct() was used instead of
Phar::__construct() by the reflection API.
In fact, ext/phar_object.c contains the following comments :
/* {{{ proto void Phar::__construct(string fname [, int flags [, string
alias]])
* Construct a Phar archive object
* {{{ proto void PharData::__construct(string fname [[, int flags [,
string alias]], int file format = Phar::TAR])
* Construct a PharData archive object
*/
PHP_METHOD(Phar, __construct)
{
...
}
Test script:
---------------
<?php
$method = new reflectionMethod('phar', '__construct');
foreach ($method->getParameters() as $parameter)
{
var_dump($parameter->getName());
var_dump($parameter->isOptional());
var_dump($parameter->isDefaultValueAvailable());
}
?>
Expected result:
----------------
string(8) "filename"
bool(false)
bool(false)
string(5) "flags"
bool(true)
bool(false)
string(5) "alias"
bool(true)
bool(false)
Actual result:
--------------
string(8) "filename"
bool(false)
bool(false)
string(5) "flags"
bool(true)
bool(false)
string(5) "alias"
bool(true)
bool(false)
string(10) "fileformat"
bool(true)
bool(false)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=52909&edit=1