My bad, replied only to sender. Fixing it now.

Well, any time you need to know signature or another information about
a function or class method, you should use Reflection. func_num_args()
is useful for when you need a dynamic function, like this (an
hypothetic example using func_get_args(), but you can get the point).

function delete ()
{
    $ids = func_get_args();
    // implementation
}

$success = delete(1, 2, 7);

On Tue, Dec 20, 2011 at 9:54 PM, Mark <mark...@gmail.com> wrote:
> Then there is no point for the func_num_args() function to accept a
> parameter at all if it takes the current function anyway.
> I don't see this as a feature, more like a bug!
>
>
> On Wed, Dec 21, 2011 at 12:51 AM, Rafael Kassner <kass...@gmail.com> wrote:
>>
>> func_num_args() must be called inside the Closure to know the number of
>> arguments that it received. If you are calling outside, it returns the
>> number of arguments of your testClosude function. There is no other way than
>> Reflection to do this.
>>
>> And, I thunk func_num_args() does not receive any parameter.
>>
>> On Dec 20, 2011, at 9:43 PM, Mark wrote:
>>
>> > Hi,
>> >
>> > Why is func_num_args not working on closures?
>> > Example code (tested on PHP 5.3.8):
>> >
>> > <?php
>> >
>> > class Test
>> > {
>> > public function testClosure($oClosure)
>> > {
>> > echo '<pre>';
>> > print_r(func_num_args($oClosure));
>> > echo '<pre>';
>> > }
>> > }
>> >
>> > $c = new Test();
>> > $c->testClosure(function($arg1, $arg2){
>> > });
>> >
>> > That returns 1 (the num of args in which function the closure is
>> > (testClosure), but not the number of args from the closure itself.
>> > Now Reflection can be used to get the number of args but that is
>> > overkill!
>> > Also when you would do print_r(func_get_args($oClosure)); you do get
>> > "something" back including the arguments but no way (that i know) to use
>> > them!
>> >
>> > Just something that i wonder...
>> > I would have expected num args to return the args of the function you
>> > provide it..
>> >
>> > Kind regards,
>> > Mark
>>
>



-- 
Atenciosamente,
Rafael Kassner

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

Reply via email to