On 06/02/2016 02:42 PM, Benjamin Eberlei wrote:


On Wed, Jun 1, 2016 at 12:55 PM, Dmitry Stogov <dmi...@zend.com <mailto:dmi...@zend.com>> wrote:

    hi,


    Please take a look into the proposal.


    https://wiki.php.net/rfc/too_few_args


    The RFC is extremely simple (both proposal and implementation) and
    almost completely described by the email subject.

    I think, this mini-RFC doesn't need 2-weeks discussion period, so
    I'm going to start the vote on next week.


Quick question, I think the error message might be a little confusing asking for "exactly $n" parameters, because it could be a variadic function using func_get_args(), shouldn't the message be?

throw Error("Too few arguments to function %s(), 0 passed in %s on line %d and at least %d expected")
"exactly" is going to be used for functions without variadic arguments and arguments with default values.
In that cases PHP will write "at least".
See the patch https://github.com/php/php-src/pull/1928/files#diff-3054389ad750ce9a9f5895cd6d27800fR4753

This is similar to other PHP error messages.

zend_internal_type_error(ZEND_ARG_USES_STRICT_TYPES(), "%s%s%s() expects %s %d parameter%s, %d given",
        class_name, \
        class_name[0] ? "::" : "", \
        ZSTR_VAL(active_function->common.function_name),
min_num_args == max_num_args ? "exactly" : num_args < min_num_args ? "at least" : "at most",
        num_args < min_num_args ? min_num_args : max_num_args,
(num_args < min_num_args ? min_num_args : max_num_args) == 1 ? "" : "s",
        num_args);



This only changes the case where the passed arguments are smaller than the required ones or not? This is acceptable BC, but passing more arguments should still not be an error.
Of course.

Thanks. Dmitry.



    Thanks. Dmitry.



Reply via email to