在PHP中这个“ \\ 1”是什么意思?

时间:2019-03-02 00:50:04

标签: php

我正在学习 PHP 语言,并且在某些 PHP 脚本中遇到了这一行:

function cc($re,$val){
return preg_replace( '/('. $re . ')/ei ,
'strtolower("\\1")',
$value 
);
 }

那么该符号在 strtolwer函数中是什么意思'// 1' 我不要求正则表达式! ,我要求在 php 中使用/ 1表示?

1 个答案:

答案 0 :(得分:2)

反斜杠是escape character,用于转义后面的反斜杠。这意味着它将\\1转换为\1,并且\1是对preg_replace输出的引用。您的代码有一些错误,我已将其清除:

function cc($re,$val){
    return preg_replace( '/('.$re.')/ei' ,'strtolower("\\1")',$val);
}

请记住,这在PHP的较新版本中将不起作用,因为在PHP的较新版本中,不再支持/ e修饰符,因此我们建议改为使用preg_replace_callback()

function cc($re,$val){
    return preg_replace_callback( '/('.$re.')/i' ,function($matches){
        return strtolower($matches[1]);
    },$val);
}