On 6/1/2016 1:33 PM, Rowan Collins wrote: > I like the concept behind this, but I worry it might have a rather large > BC impact. Like removing call-time pass-by-reference, there may be a lot > of long-untouched code that needs fixing to work within this constraint. > I'm not even sure how easy it would be for static analysis to identify > these cases. I guess on the flip-side, people will *probably* have > Warnings displayed or logged already... > > The RFC would also benefit from more discussion of the current behaviour > in different cases: > > function foo($a) {} > foo(); // Warning > > function bar(A $a) {} > bar(); // Error > > function baz(A $a=null) {} > baz(); // OK > > function quux(?A $a) {} > quux(); // Not sure. Error? > > function wibble(int $a) {} > wibble(); // Error (regardless of strict_types, I think) > > function wobble(?int $a) {} > wobble(); // Error? > > Any other cases? > > Certainly, making these consistent would be nice, but like a lot of > consistency, does it come at too high a price? >
I fully agree with Rowan here. First we need a proper plan for all these cases and a consistent behavior. Next we need to discuss if something like this can be introduced in a feature release or requires a major release. Note that func_get_args() should die too since we have variadic arguments now. However, this can only be introduced in a major version. (Correct me if I am wrong and didn't thought of a very common use case that requires func_get_args(). I for one never need it.) Whether references need to die completely or not is a more complicated discussion. There are valid use cases for them. However, they should be avoided and other solutions should be preferred if possible. -- Richard "Fleshgrinder" Fussenegger
signature.asc
Description: OpenPGP digital signature