在PHP中通过引用传递值
对于大多数函数来说,让函数返回计算输出是正常的。使用PHP,也可以通过引用将值传递给函数。一种更好的说法是,与其传递变量的值,不如传递一个指向变量本身的指针。当您执行此操作时,对函数内部变量的所有操作也将在外部完成,因此,如果再次与变量交互,它将包含不同的值。
在函数的参数中使用&字符来规定参数将通过引用传递。
这是工作示例。
function wrap_html(&$string, $tag) { $string = '<'.$tag.'>'.$string.''.$tag.'>'; } $line = 'This must be put in strong tags.'; wrap_html($line, 'strong'); echo $line; // prints out This must be put in strong tags.
这种功能的唯一局限性是您不能传递恒定值。如果尝试这种方法,PHP将死于致命错误。以下代码将产生这样的错误。
function wrap_html(&$string, $tag) { $string = '<'.$tag.'>'.$string.''.$tag.'>'; } define('LINE', 'This must be put in strong tags.'); wrap_html(LINE, 'strong'); //脚本在这里致命地死亡。 echo $line;
产生的错误如下。
Fatalerror:Onlyvariablescanbepassedbyreferenceintest.phponline7
要解决此问题,您可以将常量转储到临时变量中,然后将此变量传递给函数。