【问题标题】:addcslashes(), charlist parameter - Is the explanation on php.net correct?addcslashes(), charlist 参数 - php.net 上的解释是否正确?
【发布时间】:2018-03-24 13:28:02
【问题描述】:

当我运行这段代码时:

echo addcslashes('testing\n', "\n");

它输出这个:

"testing\n"

参数说明->Charlist说:

如果charlist包含字符\n、\r等,则转换为C-like样式

但这似乎不正确。这意味着 "\n" 会以类似 C 的风格转换为 "\n",这没有任何意义。

那么可以说php.net页面不正确吗?如果说这些类型的字符保持不变,这是否正确?我正在学习 PHP 编程,我想确保我所拥有的信息是正确的。

【问题讨论】:

  • 第一个字符串中的 '\n' 与第二个字符串中的 "\n" 不同。第一个是两个字节和两个 ASCII 字符,第二个是一个字节和一个 ASCII 字符。
  • 还有什么词可以用来表示“转换成类 C 的风格”?对此最好的解释是什么?这是在这里,在参数 - > Charlist php.net/manual/en/function.addcslashes.php
  • echo addcslashes("testing\n", "\n"); - 这将有多少字节和 ASCII 字符(双引号)?

标签: php php-7 php-5.3 addslashes


【解决方案1】:

这意味着\n(双引号内)将被转义并变为\\n:

var_dump("testing\n"); // 8 bytes
var_dump(addcslashes("testing\n", "\n")); // 9 bytes

将输出:

string(8) "testing
"
string(9) "testing\n"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    • 2013-10-14
    • 2020-12-26
    相关资源
    最近更新 更多