什么是dInspect,我该如何使用它?

时间:2011-06-22 01:26:03

标签: php

我对@SebastiánGrignoli对this question的回答很感兴趣但是,当我尝试执行它时,我得到Fatal error: Class 'dInspect' not found

谁能告诉我如何纠正这个问题?感谢。

3 个答案:

答案 0 :(得分:1)

据我所知,这是他所做的一些课程。我用谷歌搜索,“php dInspect”唯一出现的问题是这个问题..我还在包含php的库中查找名为“dump”的成员函数,但没有找到任何内容。

您可能可以稍微修改他的答案以获得您想要的东西,它看起来非常完整。 (虽然我没有测试任何东西)

答案 1 :(得分:1)

以下是该解决方案的简化版本。也许你可以用更少的麻烦来适应你的需求:

function catch_param($label)
{
        $bt = debug_backtrace();
        $src = file($bt[0]["file"]);
        $line = $src[ $bt[0]['line'] - 1 ];

        // let's match the function call and the last closing bracket
        preg_match( "#catch_param\((.+)\)#", $line, $match );

        /* let's count brackets to see how many of them actually belongs 
           to the var name
           Eg:   die(catch_param($this->getUser()->hasCredential("delete")));
                  We want:       $this->getUser()->hasCredential("delete")
        */
        $max = strlen($match[1]);
        $varname = "";
        $c = 0;
        for($i = 0; $i < $max; $i++){
            if(     $match[1]{$i} == "(" ) $c++;
            elseif( $match[1]{$i} == ")" ) $c--;
            if($c < 0) break;
            $varname .=  $match[1]{$i};
        }

    // $varname now holds the name of the passed variable ('$' included)
    // Eg:   catch_param($hello) 
    //             => $varname = "$hello"
    // or the whole expression evaluated
    // Eg:   catch_param($this->getUser()->hasCredential("delete"))
    //             => $varname = "$this->getUser()->hasCredential(\"delete\")"

    echo("The passed expression is: ".$varname);

}

如果你想要的是检验类,这就是下载链接:

http://download.inspect.jaku.com.ar/

以下是检查函数(和我的dInspect类)的实例:

http://inspect.jaku.com.ar/

该页面中的文本是西班牙文,但代码简洁,易于理解。

答案 2 :(得分:0)

当我谷歌它时,第一个命中是对NuSphere调试器nusphere.com/products/php_debugger.htm的引用,因为我没有,看起来我是SOL。