Re: BC break: ReflectionMethod::invoke() expects parameter1to be object, string given

From: Date: Tue, 23 Aug 2016 12:56:41 +0000
Subject: Re: BC break: ReflectionMethod::invoke() expects parameter1to be object, string given
References: 1 2 3 4 5 6 7 8 9  Groups: php.internals 
Request: Send a blank email to internals+get-95404@lists.php.net to get a copy of this message
2016-08-23 14:51 GMT+03:00 Christoph M. Becker <cmbecker69@gmx.de>: > I suggest to deprecate all other types than NULL as first arg for static > methods, because passing an int, for instance, makes even less sense as > Rowan has already pointed out elsewhere in this thread. > Alternative suggestion (vote for Julien's patch): use first argument as a string with LSB scope name, see my message from late 2013 year: http://markmail.org/message/ogeh33jedumgo5lx. I agree, that all other types don't make any sense. So my suggestion is following: for dynamic methods it should accept object or null. Null can mean that we want to unbind the method from the object and maybe call it like a closure? (just compare this with Closure::bindTo behaviour). For static methods this could be object (why not - it will be ignored), string (in this case it will be a scope name if we want to call parent method with preserving Late Static Binding) or just null (null will be equal to the string with object class name) Thoughts?

« previous php.internals (#95404) next »