PHP函数byref参数的默认值

时间:2014-01-24 14:01:23

标签: php function parameter-passing

我有一个PHP函数,当业务需求发生变化时,我被要求更新。原来的功能就像这样。

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

对于新版本,需要第四个可选参数。我知道我可以这样做:

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

我创建了新代码并且工作正常。我刚刚被告知,当为最后一个参数传入一个值时,它需要是byref。我在这里搜索了PHP文档和问题,但是没有看到任何有关此问题的可能性。我认为代码可以这样工作:

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

这会有用吗? PHP是否允许变量由ref传递,并且如果没有传入任何内容,还为其设置了默认值?

1 个答案:

答案 0 :(得分:1)

是的,确实有效。

请点击此处ideone.com查看其实际效果。

<?php

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

test();

输出

test

然而,有一点需要注意。如果确实传递了参数,则它必须是对变量的引用。以下内容不起作用:

test("Testing");

因为"Testing"是文字字符串,而不是可引用的变量。