首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么在我的打印数组的末尾有一个1?

为什么在我的打印数组的末尾有一个1?
EN

Stack Overflow用户
提问于 2013-01-04 03:30:57
回答 5查看 2.2K关注 0票数 4

这是一个非常简单的数组打印,但当我使用print_r时,我会得到最后的结果。

代码语言:javascript
运行
复制
<?php 
  $user_names = array(1, 2, 3, 4);
  $results = print_r($user_names);
  echo $results;
?>

然后我得到:

代码语言:javascript
运行
复制
 Array
 (
     [0] => 1
     [1] => 2
     [2] => 3
     [3] => 4
 )
 1
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-01-04 03:32:41

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

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

以下代码也可以很好地工作:

代码语言:javascript
运行
复制
$results = print_r($user_names, true);
echo $results;

但是,除非您不总是在获得结果后立即显示结果,否则它没有任何意义。

票数 11
EN

Stack Overflow用户

发布于 2013-01-04 03:31:56

你得到它是因为

代码语言:javascript
运行
复制
echo $results;

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

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

代码语言:javascript
运行
复制
$results = print_r($user_names, true);

因此,您有两个选择。要么删除echo $results,要么保留它,但将第二个参数传递给print_r。

票数 0
EN

Stack Overflow用户

发布于 2013-01-04 03:34:08

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

代码语言:javascript
运行
复制
<?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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14145821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档