Hello all,

First, I'm new here, so let me start by warmly thanking everyone involved in PHP development. I've started programming 22 years using it as my first programming language, and still enjoy using it a lot :).

I've read the rfc:howto and the first step is to get feedback from this mailing list about the intended proposal, so here is a short description of what I have in mind:

Currently PHP does not warn when user-defined functions are called with too many arguments. Changing this could break a lot of existing code, but it would also be a very good verification to catch potential bugs.

I have an idea allowing this feature without breaking any existing code: using the void keyword in a function arguments list to strictly limit the number of arguments a user-defined function can receive, stopping it on the void, which could only be used once and in the last position.

Currently, void is a return-only type so it isn't used in arguments list in existing code, so I believe the new behavior would only concern newly written code that explicitly wants to take advantage of this feature.

A few examples using functions (the same would apply to class methods, callbacks, closures, etc.) :

    function foo (void) {}
    foo(42); // warning: foo() expects exactly 0 arguments, 1 given

    function bar ($a, $b, void) {}
    bar(1, 2, 3); // warning: bar() expects exactly 2 arguments, 3 given

    function baz ($a, $b=null, void) {}
    baz(1, 2, 3); // warning: baz() expects at most 2 arguments, 3 given

I have no knowledge of the PHP internals: would that be feasible without breaking things? And, as importantly, would it be a welcome change?

Cheers,

--
Pablo

Reply via email to