php单引号和双引号

Fra*_*oko 5 php

//remove line breaks
function safeEmail($string) {
     return  preg_replace( '((?:\n|\r|\t|%0A|%0D|%08|%09)+)i' , '', $string );
}

/*** example usage 1***/
$from = 'HTML Email\r\t\n';

/*** example usage 2***/
$from = "HTML Email\r\t\n";

if(strlen($from) < 100)
{
    $from = safeEmail($from);

    echo $from;
}
Run Code Online (Sandbox Code Playgroud)

1返回HTML Email\r\t \n,而2返回HTML Email

什么是报价?

Yac*_*oby 11

根据PHP文档

与双引号和heredoc语法不同,特殊字符的变量和转义序列在单引号字符串中出现时不会被扩展.

换句话说,双引号字符串扩展特殊字符的变量和转义序列.单引号字符串不会.

所以在example1中,使用单引号字符串,字符串就像你看到的那样.斜线和所有.

但是在example2中,它不是以字符串结尾,而是\r\t\n以回车符,制表符和新行结束.换句话说,扩展了特殊字符的转义序列.

  • 因此,`strlen('HTML Email\r\t \n')`= 16,`strlen("HTML Email\r\t \n")`= 13,如果这样可以让它更清晰:) (3认同)