【问题标题】:Cannot echo the values in an array in Php [duplicate]无法在 Php 中回显数组中的值 [重复]
【发布时间】:2016-07-06 06:39:10
【问题描述】:

为什么我不能直接回显数组中的值?

$list = array('Max', 'Alice', 'Brigitte');
echo($list); //This doesn't work 

//But this does    
foreach($list as $l){
        echo($l . " ");
    };

【问题讨论】:

标签: php


【解决方案1】:

因为 echo — 输出一个或多个字符串

http://php.net/manual/en/function.echo.php

尝试对数组使用 var_dump http://php.net/manual/en/function.var-dump.php

或 print_r http://php.net/manual/en/function.print-r.php

【讨论】:

  • 您还可以通过将所有元素粘合在一起来使其成为字符串,echo implode(", ", $list);。或者直接使用相关索引访问值,例如$list[1] 输出“Alice”(因为 PHP 从 0 开始)。
【解决方案2】:

你可能已经注意到echo($list); 确实产生了一些输出:

数组

这是因为$listecho 的上下文中被强制转换为字符串。事实上,如果你打开了警告,你会看到一个

注意:数组到字符串的转换

对于那个声明。将数组转换为字符串时的defined behavior of PHP是数组总是转换为字符串"Array"

如果您想打印数组的内容而不循环它,您将需要使用各种 PHP 函数中的一种,以便更有效地将数组转换为字符串。对于像$list 这样的简单字符串数组,您可以使用implode

echo implode(', ', $list);

但如果您需要处理更复杂的数组(例如,如果某些元素本身就是数组),这将不起作用,因为相同的数组到字符串的转换问题。

【讨论】:

    【解决方案3】:

    让我们看看我是否可以很好地解释这一点。基本上 $list 有很多更多的元素和与之相关的东西。回显 $list 时,它并不真正知道如何处理它。它与数组数据类型在 PHP 中的工作方式有关。

    【讨论】:

      猜你喜欢
      • 2018-04-04
      • 2012-06-10
      • 2021-09-15
      • 2017-01-27
      • 1970-01-01
      • 2015-06-28
      • 2014-05-02
      • 2013-09-01
      • 1970-01-01
      相关资源
      最近更新 更多