为什么我不能直接回显数组中的值?
$list = array('Max', 'Alice', 'Brigitte');
echo($list); //This doesn't work
//But this does
foreach($list as $l){
echo($l . " ");
};
答案 0 :(得分:1)
由于 echo - 输出一个或多个STRINGS
http://php.net/manual/en/function.echo.php
尝试将var_dump用于数组 http://php.net/manual/en/function.var-dump.php
答案 1 :(得分:0)
您可能已经注意到echo($list);
会产生一些输出:
阵列
这是因为$list
被强制转换为echo
上下文中的字符串。事实上,如果你打开警告,你会看到
注意:数组转换为字符串
该声明。将数组转换为字符串时defined behavior of PHP是数组总是转换为字符串"Array"
。
如果要在不循环的情况下打印数组的内容,则需要使用各种PHP函数之一,将数组更有效地转换为字符串。对于像$list
这样的简单字符串数组,您只需使用implode
。
echo implode(', ', $list);
但是如果你需要处理一个更复杂的数组(例如,如果某些元素本身是数组),那么由于相同的数组到字符串转换问题,这将无法工作。
答案 2 :(得分:-1)
让我们看看能否以一种好的方式解释这一点。基本上$ list有很多元素和与之相关的东西。当回显$ list时,它并不真正知道如何处理它。它与数组数据类型在PHP中的工作方式有关。