4

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

5 回答 5

11

print_r已经打印了数组 - 不需要echo它的返回值(true因此将1在转换为字符串时结束):

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

以下也可以正常工作:

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

除非您并不总是在获得结果后立即显示结果,否则这根本没有意义。

于 2013-01-03T19:32:40.773 回答
0

你得到它是因为

echo $results;

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

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

$results = print_r($user_names, true);

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

于 2013-01-03T19:31:56.320 回答
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

于 2013-01-03T19:34:08.080 回答
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;
   ?>
于 2013-01-03T19:34:12.143 回答
0

由于您print_r没有提供第二个参数,它会自行打印并返回 1。然后您保存并打印它。尝试:

$results = print_r($user_names, true);

查看print_r的文档:

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

于 2013-01-03T19:37:05.813 回答