var_dump返回" tring(34)" - 那是什么?

时间:2016-06-02 10:53:50

标签: php

var_dump($parse);
var_dump($parse['email']);

输出

array(2) {
  ["type"]=>
  string(10) "newsletter"
  ["email"]=>
" string(34) "ksjdlfjslfkjsadflkjasdf@gmail.com
}

"tring(34) "ksjdlfjslfkjsadflkjasdf@gmail.com

输出看起来很奇怪..类型的type值看起来不错,但email看起来很奇怪..引号是类型而不是值

5 个答案:

答案 0 :(得分:2)

您转储的电子邮件地址以CR(“回车”)字符结束。

当它被发送到终端时,CR字符告诉终端在保留行的同时将光标发送到第一列。然后,发送到终端的下一个字符将打印在同一行上的现有字符上,替换它们。因为CR是您转储的字符串中的最后一个字符,所以下一个打印的字符是"(字符串结束标记),它出现在第一列上。在var_dump()的第二次调用中,该行的第一个字符为string"将覆盖其中的第一个字符。

电子邮件末尾的CR字符的来源很可能是从Windows上生成的文件加载的错误修剪字符串。 Windows使用一对CRLF字符来标记文本文件的行尾。 Linux和macOS仅使用LF(“换行”)。

为了正确清理从文件中读取的文本,您应该使用PHP函数trim()。它从提供的字符串的边界中删除多种类型的空格字符,CRLFspace是最常见的。

答案 1 :(得分:0)

它的变量类型(字符串)和charcount!检查功能:http://php.net/manual/en/function.var-dump.php

编辑:您编辑了自己的问题。所以现在它显示了你的变量类型(数组)以及有关数组中项目的所有信息。 (type,charcount(length)...)

答案 2 :(得分:0)

var_dump()显示有关一个或多个表达式的结构化信息,包括其类型,值及其长度。

在您的情况下,34的长度为string

您可以在此处找到更多详细信息:http://php.net/manual/en/function.var-dump.php

答案 3 :(得分:0)

我也有这个以及作为副作用,我无法通过键调用该值,它只是空的所以我搜索并找到了这个帖子。

示例:

$ array = array(1){       ["用户"] =>     "字符串(9)" jamestoa     }

和 <{1}}在控制台上将为空。

这是由字符串末尾的换行符echo $array["user"]引起的,不知何故导致了这种行为。

您应该使用该电子邮件中的\n来使其正常运行。

答案 4 :(得分:0)

var_dump显示有关包含其类型和值的一个或多个表达式的结构化信息。递归地探索数组和对象,并使用缩进的值来显示结构。

在你的情况下,由于某种原因,它实际上不是“tring”而是“string”。由于某种原因,倾倒的信息没有得到第一个字母。

“tring(34)”ksjdlfjslfkjsadflkjasdf@gmail.com“是您阵列中的电子邮件变量。

我似乎也在您的代码中看到了错误,这是您获得该输出的原因。

array(2) {
  ["type"]=>
  string(10) "newsletter"
  ["email"]=>
" string(34) "ksjdlfjslfkjsadflkjasdf@gmail.com
}

"tring(34) "ksjdlfjslfkjsadflkjasdf@gmail.com

[“email”] =&gt; 之后,您的结束语应该在电子邮件地址后面。

您的密码:

 " string(34) "ksjdlfjslfkjsadflkjasdf@gmail.com

应该如何:

 string(34) "ksjdlfjslfkjsadflkjasdf@gmail.com"