0

I have a PHP function that I have been asked to update as business needs have changed. The original function worked like this.

function myFunction($var1, $var2, $var3) {
   CODE GOES HERE
}

For the new version, a fourth optional parameter is required. I know that I can do this like this:

function myFunction($var1, $var2, $var3, $var4 = "") {
    CODE GOES HERE
}

I created the new code and it works fine. I've just been informed that when a value is passed in for the last parameter, it needs to be byref. I searched the PHP documentation and questions here but haven't seen anything about the possibility of this. I would assume the code would work like this:

function myFunction($var1, $var2, $var3, &$var4 = "") {
    CODE GOES HERE
}

Will this work? Does PHP allow a variable to be passed by ref and also have a default value set for it if nothing is passed in?

1 Answer 1

1

Yes, it does work.

Have a look here at ideone.com to see it in action.

<?php

function test(&$var = "test") {
    echo $var;
}

test();

Outputs

test

However, there is a caveat. If you do pass a parameter, it needs to be a reference to a variable. The following will not work:

test("Testing");

Because "Testing" is a literal string, not a referable variable.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.