Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么';";str_replace";在函数中使用时是否工作?_Php - Fatal编程技术网

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>";
}