【问题标题】:Why is there a 1 at the end of my printed array?为什么我的打印数组末尾有一个 1?
【发布时间】:2012-12-18 05:21:35
【问题描述】:

这是一个超级简单的数组打印,但是当我使用 print_r 时,我会走到最后。

<?php 
  $user_names = array(1, 2, 3, 4);
  $results = print_r($user_names);
  echo $results;
?>

然后我得到:

 Array
 (
     [0] => 1
     [1] => 2
     [2] => 3
     [3] => 4
 )
 1

【问题讨论】:

  • print_r 有第二个参数,称为return。如果您正在回显 print_r,请将其设置为 true

标签: php arrays printing


【解决方案1】:

print_r 已经打印了数组 - 不需要echo 其返回值(即true,因此在转换为字符串时将最终为1):

当返回参数为TRUE时,该函数将返回一个字符串。否则,返回值为 TRUE。

以下内容也可以正常工作:

$results = print_r($user_names, true);
echo $results;

这完全没有意义,除非您不总是在获得结果后立即显示结果。

【讨论】:

  • 天哪,你们在这个网站上都很棒。有很多东西要学...谢谢!
  • 我用过 print_r($var,$true);捕获某些东西(例如 $_SESSION)作为一种快速而肮脏的调试技术,并让服务器通过电子邮件将其发送给我。
【解决方案2】:

你得到它是因为

echo $results;

由于 $results 包含 print_r 函数的结果,即 TRUE (1)

print_r 可以返回字符串而不是回显它。为此,您必须传递第二个参数 - true:

$results = print_r($user_names, true);

所以,您有两个选择。删除 echo $results 或保留它,但将第二个参数传递给 print_r。

【讨论】:

    【解决方案3】:

    print_r 在屏幕上打印结果,如果您需要返回一个字符串而不是打印,您应该将第二个参数传递给函数:

    <?php 
    $user_names = array(1, 2, 3, 4);
    $results = print_r($user_names, true);
    echo $results;
    

    更多信息:http://php.net/manual/en/function.print-r.php

    【讨论】:

      【解决方案4】:

      print_r实际上是打印出结果,如果你希望它返回结果,使用print_r($user_name, true)'

      所以这些中的任何一个都可以满足您的需求。

      <?php 
        $user_names = array(1, 2, 3, 4);
        print_r($user_names);
       ?>
      

       <?php 
         $user_names = array(1, 2, 3, 4);
         $results = print_r($user_names,true);
          echo $results;
         ?>
      

      【讨论】:

        【解决方案5】:

        由于你没有给print_r 提供第二个参数,它会自己打印并返回一个1。然后你保存这个并打印它。试试:

        $results = print_r($user_names, true);
        

        查看print_r 的文档:

        如果您想捕获print_r() 的输出,请使用返回参数。当此参数设置为 TRUE 时,print_r() 将返回信息而不是打印它。

        【讨论】:

          猜你喜欢
          • 2014-02-16
          • 2020-02-07
          • 2011-07-08
          • 1970-01-01
          • 1970-01-01
          • 2014-12-17
          • 2022-01-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多