我正在维护一个OO PHP应用程序,它将所有内容加载到$ this数组。当我在$ this上执行var转储以了解如何访问值时,我得到了几十页的输出。寻找我需要的数组元素是非常耗时的
例如,如果我想查找Customer Territory的存储位置,我必须使用print_r或var_dump并在输出处盯着[编辑:并搜索]]来计算数组的层次结构。直到我找到路径。
例如: $ this-> Billing-> Cst->记录['Territory']
有没有更好的方法来实现这一点,或者我可以使用的一些工具/技术。例如,有没有快速的方法直接在整个数组中找到变量['Territory']的路径?
答案 0 :(得分:4)
Krumo是一个图形“var_dump”工具,可以使导航更容易一些。查看项目页面上的“示例”部分。
要在多维数组中搜索,this SO question可能对您有所帮助。
答案 1 :(得分:1)
您可以在输出上执行ctrl + F而不是盯着它吗?
首先从ctr + F开始:“客户”,“地区”以及与您搜索的任何内容相关的所有其他名称。
答案 2 :(得分:1)
function findInTree($var, $words) {
$words = explode(' ', strtolower($words));
$path = array();
$depth = 0;
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($var), RecursiveIteratorIterator::SELF_FIRST);
foreach ($iterator as $key => $value) {
if ($iterator->getDepth() < $depth) {
unset($path[$depth]);
}
$depth = $iterator->getDepth();
$path[$depth] = $key;
if (is_string($key) && in_array(strtolower($key), $words)) {
echo '<pre>', implode(' -> ', $path), '</pre>';
}
}
}
findInTree($this, 'Customer Territory');
此功能将遍历您的对象并查找任何给定的单词作为键。
答案 3 :(得分:0)
FirePHP/Firebug
可以为您提供$this
及其属性的详细结构视图。