【问题标题】:print_r($arrayname, boolean); Why is the boolean used?print_r($arrayname, boolean);为什么使用布尔值?
【发布时间】:2013-11-30 02:32:45
【问题描述】:

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

<?php 

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

?> 

输出:

数组 ( [0] => 杰夫 [1] => 詹姆斯 [2] => 杰里米 )

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

数组 ( [0] => 杰夫 [1] => 詹姆斯 [2] => 杰里米 ) 1

有人可以帮我解决这个问题吗?将不胜感激。

谢谢

【问题讨论】:

  • 跳过echo,使用print_r($names)
  • 我知道这可以解决问题,但我更感兴趣的是为什么会发生这种情况。

标签: php arrays boolean


【解决方案1】:

将第二个参数指定为 true 意味着 print_r 返回内容供您使用,主要存储在变量中。将其指定为 false 或省略它,意味着将打印内容。

【讨论】:

    【解决方案2】:

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

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

    详见文档:http://php.net/manual/en/function.print-r.php

    由于您刚刚编辑了您的问题,以下是答案: 你想把pre-tags 放在你的代码周围。通常你想转义 html 字符。 所以你抑制输出以通过调用htmlspecialchars()来解析它

    echo '<pre>', htmlspecialchars(print_r($names,true)) , '</pre>';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-11
      • 2011-01-29
      • 1970-01-01
      • 2016-07-30
      • 2019-04-05
      • 2014-02-09
      • 2016-04-26
      • 2015-10-10
      相关资源
      最近更新 更多