I, for one, decided not to participate in the discussions any more because they always change to something different in a few hours of discussion. I'm surprised how people tend to complicate the feature into something weird and ugly. I now understand why core team just ignores some discussions.
I don't like the function a( (int) $int) syntax and approach - it's not type hinting, it's auto-converting arguments. And adding function a( (array) $array) is just, well, pointless. Why? Because if you have a conversion from scalar to array - you definitely have something wrong in the code that needs fixing, not converting and continue to run the code like it's OK. It should come like a barrier, not a filter. And current array and object type hinting does just that. The (object) is also pointless for type hinting. Why? Because you usually expect not any damn object, but an object of certain type and it's children. That works now just fine and errors the hell out if something isn't right. I realize that with scalars it's not that straight forward, but complicating things by adding an auto-cast syntax and so on is just ridiculous. Hints should stay, well, hints. The only problem we have is complications of accepting numerical strings or numbers as strings. And what to do with "null". Everything else is irrelevant. function a(bool $bool) {} a(10); // Kill your self against the wall - write a(true); If you define bool - use the damn bool! It's not an "if" or "switch" statement where auto-converting is usually used. It's a function call, you should pass to it correct arguments. Type hinting is working only for more internal API's - the data filtering and validating layer using type hints will generate errors all over the place. We all know how many security hole scanners out there that scan sites and pass all kind of data to our scripts to break them and try exploiting that. I consider interchangeable only three cases: 1. Numerical string. 2. Integers and floats as strings. 3. Integer and string 0 1 as bool. Any other cases should error out. Type hinting is not for using it all over the place - it should be used in places it is really needed. And it should define the expected type with some auto-converting limited special cases like I have written above. That is really all it needs. No super-duper-auto-converting type-hints, no variable type hinting and other wild stuff I have seen during last 2-3 weeks. Anything more complicated than that and count a -1 vote from me. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php