为了账号安全,请及时绑定邮箱和手机立即绑定

请问关于var_dump 和 echo 输出的内容完全是两码事?求解释~

请问关于var_dump 和 echo 输出的内容完全是两码事?求解释~

PHP C
冉冉说 2021-11-26 19:15:32
我写了一个测试网页post_test.php,向a.php送post消息,消息内容是简单XML元素。a.php正确接收并处理,同时a.php要直接输出字符串内容,并让post_test.php可以用file_get_contents函数接收到。返回的内容也是格式相同的简易XML文档,其中有一处结点内容是时间戳,用time()函数生成。可奇怪的就是,不论是a.php自己输出,还是post_test.php用file_get_contents接收,用echo输出的内容仅仅是时间戳,而用var_dump输出的是XML内容的字符串。为何var_dump和echo、print等函数输出的内容完全是两码事?很明显,var_dump得到的内容是我期望的,如何才能让post_test.php接收到的内容是XML字符串呢?我注意到,跟time()没关系。XML文档中的大部分节点的内容都适用<![CDATA[……]]>引用的,唯有时间戳那个结点是直接写数字的。我发现,那个没有用CDATA引用的部分,会直接出现在echo的输出中,以及file_get_contents()的返回值中。为何会出现这种状况?该如何修正?
查看完整描述

2 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

var_dump — 打印变量的相关信息
$b = 3.1;
var_dump($b);
输出字符串:
float(3.1)
如果是echo与print
echo 3.1;
输出字符串:
3.1
如果要更好的输出xml,建议看看PHP手册中的XMLWriter章节。另外,不什么不尝试json这种类型呢?xml传递相对比较过时了。

查看完整回答
反对 回复 2021-11-29
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

var_dump 判断一个变量的类型与长度如:
<?
$a = 1;
$b = 't';
echo var_dump($ta,$tb); // 结果为 int(123) string(3) "abc"
?>

echo仅输出变量或字串
<?
$a = "abc";
echo $a; //输出 abc

//or
echo "abc"; //输出 abc
?>

print_r输出数组
<?
$a = array('a','b','c');
print_r($a); // 输出 Array ( [0] => a [1] => b [2] => c )
?>


查看完整回答
反对 回复 2021-11-29
  • 2 回答
  • 0 关注
  • 370 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信