On Tue, Apr 26, 2022 at 12:18 AM Larry Garfield <la...@garfieldtech.com>
wrote:

> On Mon, Apr 25, 2022, at 4:07 PM, Rowan Tommins wrote:
>
> > Off the top of my head, I don't know what other inconsistencies remain,
> > but my point was that in every case so far, internal functions have been
> > adapted to match userland, not vice versa.
>
> <off topic>
>
> Internal functions error if you pass excessive arguments to a non-variadic
> function.  User-space functions just ignore the extras.  This is an
> inconsistency that has caused me considerable grief in the past year.
>
> I know Joe has said he wants userspace to become more strict like internal
> on this one.  I will not predict what actually happens.
>
> </off topic>
>

<more>

A few internal functions have parameters with an `UNKNOWN` default value in
the stubs, e.g.
https://github.com/php/php-src/blob/php-8.1.5/Zend/zend_builtin_functions.stub.php#L35

     function get_class(object $object = UNKNOWN): string {}

documented with a question mark at
https://www.php.net/manual/en/function.get-class.php

    get_class(object $object = ?): string

or
https://github.com/php/php-src/blob/php-8.1.5/ext/standard/basic_functions.stub.php#L1558

    function mt_rand(int $min = UNKNOWN, int $max = UNKNOWN): int {}

documented with two signatures at
https://www.php.net/manual/en/function.mt-rand.php

    mt_rand(): int
    mt_rand(int $min, int $max): int

</more>

-- 
Guilliam Xavier

Reply via email to