【问题标题】:Replace var_dump with a custom function in PHP用 PHP 中的自定义函数替换 var_dump
【发布时间】:2016-07-08 00:33:00
【问题描述】:

我想知道是否可以用一些用户定义的函数替换 var_dump。 我知道您可以使用各种模块或某些包装器的任何类型的转储功能。 但我想要实现的是,我项目中使用“var_dump”的任何人都可以获得我的新功能,而无需“知道”它,也无需使用不同的语法。 只需覆盖该功能。 谢谢

【问题讨论】:

  • 你需要编辑 PHP 源代码来实现你想要的。 :-)
  • 我总是写函数function vd($var) { echo '<pre>'; var_dump($var); echo '</pre>'; }。我建议你这样做。

标签: php debugging var-dump


【解决方案1】:

PHP 不支持重新声明函数 AFAIK。 但是,您可以根据具体情况做一些小技巧。

假设你在一个文件中有这段代码:

 var_dump($a);
 var_dump($b);
 var_dump($c); 

您可以像这样将其包装在命名空间中:

namespace OverridingGlobalNamespace {
    function var_dump($_) {
          echo "My custom var_dump";
    }

   var_dump($a); //Will use namespace function instead of PHP function
   var_dump($b);
   var_dump($c); 
}

【讨论】:

  • 嗨,这似乎是一个有趣的解决方案,我必须检查这是否真的有效;)
  • 如您所说-这是特定于案例的,我仍然无法将其应用于所有 var_dump 调用。所以我想这是不可能的:)
  • @Asped 我不认为这是一个理想的解决方案,甚至不是一个好主意。我只是觉得这是语言的一个有趣的怪癖。理想情况下,您不希望使用 var_dump 而是使用您自己的包装函数来执行您希望它执行的操作(并且您可以在调试和生产环境中进行不同的定义)。
  • 确保自己的包装器是最好的解决方案。我打算做的唯一一件事是确保在现场项目中,如果有一些意外完成的转储或其他情况,当以错误的方式使用时,它们会被抑制
猜你喜欢
  • 1970-01-01
  • 2018-06-02
  • 2020-07-19
  • 1970-01-01
  • 1970-01-01
  • 2014-01-11
  • 2019-07-21
  • 1970-01-01
  • 2012-06-27
相关资源
最近更新 更多