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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to