Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中的无序回音_Php_Echo - Fatal编程技术网

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进行测试,在预期结果中发现了一个奇怪的东西

这是我使用的程序:

<?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函数之间不回显uid

echo不会回显$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;