Stripslashes和array_map

时间:2013-11-24 10:27:37

标签: php function

下面的代码不仅要删除一个反斜杠而不是两个反斜杠吗?但在输出中我看到2个反斜杠被删除。有人可以解释一下吗?

<?php
    function stripslashes_deep($value)
{
    $value = is_array($value) ?
                array_map('stripslashes_deep', $value) :
                stripslashes($value);

    return $value;
}

// Example

$array = array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar"));
$array = stripslashes_deep($array);

// Output

print_r($array);
?>

输出如下:

Array
(
    [0] => f'oo
    [1] => b'ar
    [2] => Array
        (
            [0] => fo'o
            [1] => b'ar
        )

)

2 个答案:

答案 0 :(得分:0)

由于字符串用双引号括起来,因此使用\的转义序列在上面的情况下按照this table (PHP manual)影响字符串\\表示\。

答案 1 :(得分:0)

这两个反斜杠实际上是一个单个字符。阅读有关逃离角色的信息。