Php 为什么';";str_replace";在函数中使用时是否工作?
我需要跳过一些输入数据中的单引号,我想在函数中这样做(函数还应该包括其他指令,但为了清晰起见,我不在这里编写它们)。 因此,我编写了以下函数,并在函数内部和外部测试了其输出:Php 为什么';";str_replace";在函数中使用时是否工作?,php,Php,我需要跳过一些输入数据中的单引号,我想在函数中这样做(函数还应该包括其他指令,但为了清晰起见,我不在这里编写它们)。 因此,我编写了以下函数,并在函数内部和外部测试了其输出: function quote_skip($data) { $data = str_replace("'", "\'", $data); echo "Output inside the function quote_skip: ".$data." <br>";
function quote_skip($data)
{
$data = str_replace("'", "\'", $data);
echo "Output inside the function quote_skip: ".$data." <br>";
return $data;
}
$test = "l'uomo";
quote_skip($test);
echo "Output outside the function quote_skip: ".$test."<br>";
function quote\u skip($data)
{
$data=STRU替换(“'”、“\'”、$data);
echo“函数quote_skip内的输出:.$data。”
;
返回$data;
}
$test=“l'uomo”;
报价跳过($test);
echo“函数外部的输出”quote_skip:“.$test.”
”;
结果如下:
函数quote_strip内的输出:l
函数quote_条外的输出:l'uomo
所以,当我在函数外回显变量时,反斜杠就不存在了。为什么会发生这种情况?有没有办法将反斜杠也保留在函数之外
我只知道php的基础知识,也许答案很明显,但我在搜索过的所有论坛中都找不到任何东西。如果有人能找到解决方案,我们将不胜感激
谢谢。在中忽略函数的返回值
quote_skip($test);
你:
函数不是问题,下面的代码函数是,您不回显函数输出:
$test=“l'uomo”;
echo“函数quote_skip外部的输出:”.quote_skip($test)。“
”;
如果您使其通过引用传递变量,它将起作用:
function quote_skip(&$data) // use the `&`
{
$data = str_replace("'", "\'", $data);
echo "Output inside the function quote_skip: ".$data." <br>";
}
function quote_skip(&$data)//使用`&`
{
$data=STRU替换(“'”、“\'”、$data);
echo“函数quote_skip内的输出:.$data。”
;
}
演示:谢谢@phihag!我不敢相信这是如此明显,但我自己也找不到答案。这是一个很大的帮助
function quote_skip(&$data) // use the `&`
{
$data = str_replace("'", "\'", $data);
echo "Output inside the function quote_skip: ".$data." <br>";
}