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