Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement explicit send-by-ref #110

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Implement explicit send-by-ref #110

wants to merge 3 commits into from

Conversation

iluuu1994
Copy link
Owner

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);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants