有没有办法转储与 PHP 中变量的print_r
或var_dump
相同的用户定义或系统编译函数?
例如:
dump('echo');
或
dump('my_function');
这样的功能会很强大。
PHP 之外的一些工具会有所帮助:调试器,如 gdb;重构工具,如 resharper/MonoDev 和一些跟踪工具,如 strace/dtrace。您还将使用一些公开内部的工具,例如 Derick 的 VLD 或 PVT,它们可以将操作码转储为可读格式,从那里开始,从中(重新)创建代码并非完全不可能。
特别是,对于商业PHP扩展和产品,如Zend Core/Platform或Zend Server,这将是一种逆向工程/反汇编技术,因为您要求从PHP内部获取C/C++扩展代码。
你不需要这种技术!
这样做的好处是一些框架,如Zend扩展了一些 函数到 PHP 全局函数,如 zend_report_statistics 和 I 想在我的调试页面中查看它们的结构,因为它们编译了 在 DLL 文件中。
除了调试之外,查看一些统计信息报告函数的内部没有真正的好处。
顺便说一下,在做dump('echo');
时,你会看到的第一件事是,echo
是一个语言结构,而不是一个函数。