I agree this is a BC break and should not stay as-is in source code.

It makes some testsuites fail, that did not fail before ; thus it breaks things.


I think @Alexander is right.
We should allow passing a string, and perform some Late Static Binding
through it.
That would solve the BC Break problem as well as extend the feature in
a more PHP-friendly way.



Julien




On Mon, Aug 22, 2016 at 5:55 PM, Alexander Lisachenko
<lisachenko...@gmail.com> wrote:
> 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
>>
>>

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

Reply via email to