Re: BC break: ReflectionMethod::invoke() expects parameter 1 to be object, string given
| From: | Alexander Lisachenko | Date: | Mon, 22 Aug 2016 15:55:30 +0000 |
| Subject: | Re: BC break: ReflectionMethod::invoke() expects parameter 1 to be object, string given | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-95383@lists.php.net to get a copy of this message | ||
First argument can be a normal string with a valid scope class name for
static methods. This can be useful for calling parent static methods, see
my example.
I think this will be comparable with Closure::call() method and scope
binding.
понедельник, 22 августа 2016 г. пользователь Rowan Collins
написал:
> On 22/08/2016 16:40, Christoph M. Becker wrote:
>
>> It is still ignored if it is a valid object, so the current beta's
>>> > behaviour doesn't actually make a lot of sense.
>>>
>> Well, see <https://3v4l.org/n8cad>. Only as of
>> 7.1.0beta3 ::invoke()
>> matches the behavior of ::invokeArgs().
>>
>
> OK, so that's a further inconsistency. The current version still doesn't
> actually make sense, though. If you want to validate that the correct
> argument is being passed, then the only value allowed should be null.
>
> If so desired, I can revert that commit, but I wouldn't be happy with
>> sticking with a completely unused parameter, which obviously has been
>> and still is misunderstood.
>>
>
> The parameter is still unused, and can be any object. The only sane
> validation would be to check explicitly for null, which is documented as
> the correct argument for both invoke() and invokeArgs().
>
> Regards,
> --
> Rowan Collins
> [IMSoP]
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>