print_r($ arrayname,boolean);为什么使用布尔值?

时间:2013-11-16 18:59:07

标签: php arrays boolean

我刚刚开始学习PHP,从一些来源学习。我想知道为什么print_r函数需要布尔值。

<?php 

$names = array('Jeff','James','Jeremy');
echo '<pre>', print_r($names), '</pre>';

?> 

输出:

阵 (     [0] =&gt;杰夫     [1] =&gt;詹姆士     [2] =&gt;杰里米 )

如果我不包含布尔值,则输出在数组末尾带有整数“1”。像这样:

阵 (     [0] =&gt;杰夫     [1] =&gt;詹姆士     [2] =&gt;杰里米 ) 1

有人可以帮我解决这个问题吗?非常感谢。

由于

2 个答案:

答案 0 :(得分:1)

将第二个参数指定为true意味着print_r返回您要执行某些操作的内容,主要存储在变量中。将其指定为false或省略它意味着打印内容。

答案 1 :(得分:0)

根据php.net上的文档,boolean会抑制输出并返回它(使用输出缓冲区)。 在这个代码点,这是没有意义的,直到你想将print_r()的输出分配给变量。 所以这两条线实际上都是一样的:

echo print_r($names, true);
print_r($names);

有关详细信息,请参阅文档:http://php.net/manual/en/function.print-r.php

因为您刚刚编辑了问题,所以答案如下: 你想把pre - 标签放到你的代码中。通常你想逃脱html字符。 因此,您可以通过调用htmlspecialchars()

来抑制输出以解析它
echo '<pre>', htmlspecialchars(print_r($names,true)) , '</pre>';