I am new to the list and internals so my question might be obvious to others: Why even cast the variable? When I look at a function and see:
function myFunc(array $someData) { //some processing } I understand that myFunc requires an array passed in. If I try to call myFunc like so: myFunc('foobar'); I get a fatal error stating that I did not pass in an array. If I try with stdClass: myFunc(new \stdClass()); I will get the same error however If I cast the object before passing in like so: myFunc((array) new \stdClass()); It works just fine. The benefit of having the hint tells whom ever is going to consume the function that the parameter needs to be casted to the scalar type. If I have this: function addTwoValues(int $valueOne, int $valueTwo); It is clear that i need to make sure I'm using int's. If I try to call that function with any other type, I would like to get the error instead of some kind of auto-magical cast into something that could product strange results. I think the benefit is in having the hint with excluding the cast of the value. Let the user cast the value to what the function requires. IMHO Allow the author of the function to dictate what is needed to execute. On Mon, Jul 14, 2014 at 3:59 PM, Andrea Faulds <a...@ajf.me> wrote: > > On 14 Jul 2014, at 20:53, Rowan Collins <rowan.coll...@gmail.com> wrote: > > > The debate in this thread basically comes down to us each wanting our > favourite from that list of features to have the privilege of dedicated > syntax in function signatures. > > That’s why this RFC is supposed to be a best-compromise solution between > strict and just casting. The hope is to appease both sides and provide the > most workable solution, really. It’s also the style that I, myself, like > best, because it’s strict enough to catch bugs (I like that), and it keeps > PHP a type-shifting language (I like that too). > > -- > Andrea Faulds > http://ajf.me/ > > > > > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >