php中的无序回音
我正在用php进行测试,在预期结果中发现了一个奇怪的东西 这是我使用的程序:php中的无序回音,php,echo,Php,Echo,我正在用php进行测试,在预期结果中发现了一个奇怪的东西 这是我使用的程序: <?php $tags = $_GET['tags']; $uid = $_GET['uid']; $langs = $_GET['langs']; echo var_dump($tags).$uid.var_dump($langs); ?> 结果是: array(2) { [0]=> string(2) "IT" [1]=> string(2) "CS" } array(2) { [0]=&
<?php
$tags = $_GET['tags'];
$uid = $_GET['uid'];
$langs = $_GET['langs'];
echo var_dump($tags).$uid.var_dump($langs);
?>
结果是:
array(2) { [0]=> string(2) "IT" [1]=> string(2) "CS" } array(2) { [0]=> string(6) "basque" [1]=> string(7) "spanish" } userIdent
我不明白为什么在两个var_dump函数之间不回显uidecho不会回显$uid,而是尝试输出我认为无效的var_dump结果 您可能想要:
var_dump($tags);
echo $uid;
var_dump($langs);
但是var_dump通常用于调试,而不是呈现最终结果您将var_dump的返回值与$uid连接起来。因为var_dump不返回任何内容,所以这算不了什么。所以无效$uid。null将被连接和回显。但在这之前很久,两个var_dump调用已经将其输出转储到屏幕上。var_dump不返回字符串,而是自己输出。echo的整个参数在echo打印任何内容之前进行计算。因此,您的声明相当于:
$temp1 = var_dump($tags);
$temp2 = $uid;
$temp3 = var_dump($langs);
echo $temp1.$temp2.$temp3;
由于var_dump不返回任何内容,$temp和$temp2将为空。所以它实际上相当于
var_dump($tags);
var_dump($langs);
echo $uid;
var_dump($tags);
var_dump($langs);
echo $uid;