【问题标题】:var_dump outputting string('**') "array"var_dump 输出字符串('**')“数组”
【发布时间】:2011-07-08 21:01:27
【问题描述】:

我正在使用 foreach 循环和 var_dump,但以下代码中的 var_dump 输出了一些奇怪的东西。如何去掉预先添加的 sring() 和引号?

$dir = 'url/dir/dir/';    
$images_array = glob($dir.'*.jpg'); 

$images = array();

foreach ($images_array as $image) {
    $images[] = str_replace($dir, '', $image);   
}


var_dump(implode(',', $images)); 

输出:

string(51) "image1.jpg,image2.jpg,image3.jpg,image4.jpg"

【问题讨论】:

  • 如果有疑问,请咨询 php.net 了解您正在使用的内容。它很容易搜索,只需转到“php.net/var_dump”,它就会带您进入该页面。对于打印,您应该使用 echo 或 print。如果您是新手,请查看有关基础知识的手册部分——所有内容都在网站上。

标签: php arrays var-dump


【解决方案1】:

这就是var_dump 所做的——它打印数据类型和长度。如果您只想输出字符串,请使用

echo implode(',', $images);

【讨论】:

  • 在调试 PHP 脚本时,永远不要相信您在浏览器呈现的输出中看到的内容。始终查看页面源代码,它显示原始未解释的输出。
【解决方案2】:

var_dump 没有输出任何“奇怪”的东西。这就是它应该做的。是用来调试的,不是用来回显的。

只要echo你想要的字符串:

echo implode(',', $images);

【讨论】:

    【解决方案3】:

    var_dump 返回变量的类型和所有有关它的信息。 如果你用 HTML <pre>

    echo '<pre>';
    var_dump($images);
    

    它将为您打印一个包含所有元素的数组。

    如果:

    echo '<pre>';
    var_dump(implode(',', $images)); 
    

    它返回字符串。 并且还告诉你它是一个字符串。

    如果您只想打印值,请使用echo

    echo implode(',', $images); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-09
      • 2017-02-09
      • 2019-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多