【问题标题】:different output from same function with same parameters具有相同参数的相同函数的不同输出
【发布时间】:2012-06-24 20:32:43
【问题描述】:

我对以下字符串函数感到困惑

echo strlen("l\n2"); //give 3 in output

在哪里

echo strlen('l\n2'); //give 4 in output

谁能解释为什么?

【问题讨论】:

    标签: php string string-length


    【解决方案1】:

    因为当您使用单引号 (' ') 时,PHP 不会将 \n 扩展为单个换行符,而在双引号 (" ") 中,\n 会转换为换行符(即 a单个字符)因此给出 3 个字符

    取自 PHP 的字符串文档:http://php.net/manual/en/language.types.string.php

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

    【讨论】:

    • 是的,我对此感到困惑,实际上我通常对字符串引号感到困惑,感谢您的快速响应
    【解决方案2】:

    \n 当字符串用单引号括起来时,不会被解析为换行符。相反,它被视为文字 \ 后跟 n

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-28
      • 1970-01-01
      • 2014-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多