您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

私家调试函数求优化

2024/3/13 20:30:48发布24次查看
私人调试函数求优化
1.可能有点异想天开,我希望获取调用这个函数的文件的文件名和行数,目前的死办法是外面传__file__和__line__
2.我想获取外面传的调试变量的名称,例如你有个变量叫  $abc = 'fdsafs'; 这样赋值了,然后  debug($abc);   我能在这个函数内部想办法知道这个变量的名称叫  abc
3.获取变量类型,类似别的语言的typeof,现在来一个变量,假设它是字符串,却没办法echo typeof($data)   ,却要if(is_string($data))echo 'string';...
4.你能提出的更多优化建议,写一写你的改造结果~
====================
这个函数从当初最简单的
function debug($data, $die = false){
    echo '
';
    print_r($data);
    echo '
';
    if($die)die();
}
到今天如下面的代码,已经是一年多了~方便自己调试变量值.我也懒得学那些什么复杂的调试框架什么xdebug..其实我要调试的需求在上面说的和下面代码体现的都有了,没更多的要求.
大家有没有试过,在一个很大的程序体里,到处echo一些值,在调试完后修正代码后,运行时还发现有调试的echo值输出,却不记得这个echo放哪里了- -   所以我需要知道这个调用的文件位置和行号.包括其它更多的调试需求,其实也不是很多,知道变量内容,长度,类型,它变成这个内容的文件位置就行了.
上代码:
'v1',
    'b' => 'v2',
);
debug($a);
debug($b);
debug($c);
debug($d);
debug($d);
debug($e);
debug($f);
debug($g);
function debug($data, $die = false, $file = null, $line = null){
    static $debugcount = 0; //调试计数器
    echo '
================= 新的调试点: '.++$debugcount.'========================
';
    if($file)echo 文件名: $file
\n;
    if($line)echo 行数: $line
\n;
    $len = strlen($data);
    if($len)echo '内容长度:'.$len.
\n;
    echo 变量名称: a
\n; //有没有办法获取到外面传参时,debug($a);的变量名称 'a'?
    echo \n;
    print_r(var_export($data, true));
    echo 
\n;
if($die){
        exit('
返回');
    }
    else return $debugcount;
}
------解决方案--------------------
function debug()
{
global $config;
if(!$config['debug']) {
return;
}
echo '';
foreach(func_get_args() as $var)
var_dump($var);
echo '
';
}
function fdebug()
{
    global $config;
    if(!$config['debug']) {
        return;
    }
    foreach(func_get_args() as $var) {
        file_put_contents('./aaa_yii_debug.php', ''.php_eol . php_eol, file_append);
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product