【问题标题】:php <br> before var_dump not producing line breakvar_dump 之前的 php <br> 不产生换行符
【发布时间】:2022-01-01 01:31:52
【问题描述】:

我已经编写了如下的 php 脚本,但是在 var_dump 函数之前使用的换行符在给出 bool(true) 之前没有产生换行符。请帮我找出我做错了什么。

<?php
class Fruit {
}
$apple = new Fruit();
echo "<br>" . var_dump($apple instanceof Fruit) . "<br>";
?>

输出: bool(true)

bool(true) 之前没有换行

【问题讨论】:

  • var_dump 立即转储到屏幕,它不会附加到回声。改为将其分解为 3 个完整的语句。
  • var_dump 没有return 值,但您正尝试将其返回值连接 成一个字符串。发生的情况是 var_dump 首先写入输出缓冲区,然后才将您的字符串值回显到输出缓冲区。
  • 试试var_export($apple instanceof Fruit, true)

标签: php class line-breaks var-dump


【解决方案1】:

与其使用
作为输出并将其拆分为 3 个完整的语句(如评论中所建议的那样),不如使用

class Fruit {
  public $prop = 1;
}
$apple = new Fruit();

echo "<pre>";
var_dump($apple instanceof Fruit,$apple);
echo "</pre>";

输出:

bool(true)
object(Fruit)#2 (1) {
  ["prop"]=>
  int(1)
}

处理 var_dump 输出中包含的换行符。

【讨论】:

    【解决方案2】:

    你可以试试

    echo "<pre>"; echo var_dump($apple); echo "</pre>";
    

    从技术上讲,@aynber 和 @CBroe 是对的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-15
      • 1970-01-01
      • 1970-01-01
      • 2013-03-12
      相关资源
      最近更新 更多