为什么我的打印数组末尾有1?

时间:2013-01-03 19:30:57

标签: php arrays printing

这是一个超级简单的数组打印,但是当我使用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

5 个答案:

答案 0 :(得分:12)

print_r已打印数组 - 无需echo返回值(true,因此转换为字符串时最终会以1结尾):

  

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

以下也可以正常工作:

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

除非你总是在获得结果后立即显示结果,否则完全没有意义。

答案 1 :(得分:1)

你得到它是因为

echo $results;

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

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

$results = print_r($user_names, true);

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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;
   ?>

答案 4 :(得分:0)

由于你给了print_r没有第二个参数,它将自己进行打印并返回1.然后保存这个并打印出来。尝试:

$results = print_r($user_names, true);

查看print_r的文档:

  

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