【问题标题】:Is there an equivalent of var_dump for methods in PHP?PHP中的方法是否有等效的var_dump?
【发布时间】:2016-02-06 14:52:16
【问题描述】:

我正在处理一些遗留代码,我需要从对象中获取一些信息。以价格为例。价格可以存储在变量中,也可以通过方法检索。我还不知道,只知道它存在于对象中。

我可以在代码中抓取一个对象,然后 var_dump 所有变量,以查看运行时该点可用的内容。但有时我需要的东西不是由

返回的
$item->price

但需要由

检索
$item->get_price()

在我看来,能够以与从变量中转储信息相同的方式从方法中转储信息会非常有帮助。

因此,理想情况下,我会将这个命令粘贴在代码中,它会返回最少的所有可以在对象上调用的方法的列表。理想情况下,如果这些方法没有输入,那么它也会返回它们的返回值。

PHP 中是否存在这样的命令?任何语言?

【问题讨论】:

  • get_class_methods 和班级Reflection
  • 无论你做什么,如果这个类有一个神奇的__call() 方法,那么你将无法识别任何可能进入它的方法。

标签: php oop var-dump


【解决方案1】:

你需要自己写。

看看get_class_methods。您需要为此提供类名。您可以通过get_class获取。

所以你想在你的库中引入这样的东西:

function getObjectMethods(object $obj) {
    $className = get_class($obj);
    return get_class_methods($className);
}

也许您应该考虑一个更好的 IDE,它支持类型提示等。例如,看看 PHPStorm

【讨论】:

  • “理想情况下,如果这些方法没有输入,那么它也会返回它们的返回值。”我认为你的轨道与运营需求略有不同
猜你喜欢
  • 1970-01-01
  • 2010-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-12
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多