Open
Conversation
2241878 to
67b3b1a
Compare
Currently, in order to pass an argument by reference, the reference
has to be declared at the definition-site, but not at the call-site:
function byRef(&$ref) {}
byRef($var);
This change adds the ability to specify the by reference pass at
*both* the definition-site and the call-site:
function byRef(&$ref) {}
byRef(&$var);
Importantly, specifying a reference during the call will generate
an error if the argument is not also declared by-reference at the
declaration site:
function byVal($val) {}
byVal(&$val); // ERROR
This makes it different from the call-time-pass-by-reference
feature in PHP 4. If this feature is used, the reference has to
be declared at both the call- *and* declaration-site.
Note that it is still possible to not explicitly specify the use
of by-reference passing at the call-site. As such, the following
code remain legal:
function byRef(&$ref) {}
byRef($var);
67b3b1a to
fa9c737
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Currently, in order to pass an argument by reference, the reference has to be declared at the definition-site, but not at the call-site:
This change adds the ability to specify the by reference pass at both the definition-site and the call-site:
Importantly, specifying a reference during the call will generate an error if the argument is not also declared by-reference at the declaration site:
This makes it different from the call-time-pass-by-reference feature in PHP 4. If this feature is used, the reference has to be declared at both the call- and declaration-site.
Note that it is still possible to not explicitly specify the use of by-reference passing at the call-site. As such, the following code remain legal: