我对@SebastiánGrignoli对this question的回答很感兴趣但是,当我尝试执行它时,我得到Fatal error: Class 'dInspect' not found
。
谁能告诉我如何纠正这个问题?感谢。
答案 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类)的实例:
该页面中的文本是西班牙文,但代码简洁,易于理解。
答案 2 :(得分:0)
当我谷歌它时,第一个命中是对NuSphere调试器nusphere.com/products/php_debugger.htm的引用,因为我没有,看起来我是SOL。