我正要制作一个过滤器帮助器,并通过引用传递基本替换功能来测试我的想法,它不会起作用!
<?php
$text ="hello world i am here !";
function findandreplace(&$text, $search, $replaced)
{
return str_replace($search, $replaced, $text);
}
print findandreplace($text,'e','E');
print "<br>";
print $text;
输出总是那样:
hEllo world i am hErE !
hello world i am here !
我尝试了一些事情,但我不会工作,所以我的错是什么。
答案 0 :(得分:4)
您没有对传递的$text
字符串进行任何更改,因为str_replace不会修改传入的字符串 - 它会收到传入值的副本,并返回结果。它
如果您将str_replace
的结果分配给$text
变量,它将按预期工作:
$text ="hello world i am here !";
function findandreplace(&$text, $search, $replaced)
{
$text = str_replace($search, $replaced, $text); //<-- now it will work
return $text;
}
print findandreplace($text,'e','E');
print "<br>";
print $text;