首頁 後端開發 php教程 私家调试函数求优化

私家调试函数求优化

Jun 13, 2016 pm 12:57 PM
debug echo gt lt nbsp

私人调试函数求优化
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 '

';<br>
    print_r($data);<br>
    echo '
登入後複製
';
    if($die)die();
}
到今天如下面的代码,已经是一年多了~方便自己调试变量值.我也懒得学那些什么复杂的调试框架什么xDebug..其实我要调试的需求在上面说的和下面代码体现的都有了,没更多的要求.
大家有没有试过,在一个很大的程序体里,到处echo一些值,在调试完后修正代码后,运行时还发现有调试的echo值输出,却不记得这个echo放哪里了- -   所以我需要知道这个调用的文件位置和行号.包括其它更多的调试需求,其实也不是很多,知道变量内容,长度,类型,它变成这个内容的文件位置就行了.



上代码:

$a = 'xx';
$b = 45;
$c = true;
$d = false;
$e = null;
$f = new stdClass();
$g = array(
    'a' => '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";<br>
    print_r(var_export($data, true));<br>
    echo "
登入後複製
\n";


    if($die){
        exit('
返回');
    }
    else return $debugCount;
}

------解决方案--------------------
function debug()<br />
{<br />
    global $config;<br />
    if(!$config['debug']) {<br />
        return;<br />
    }<br />
<br />
    echo '<pre class="brush:php;toolbar:false">';<br />
    foreach(func_get_args() as $var)<br />
    var_dump($var);<br />
    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);
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

解決方法:您的組織要求您更改 PIN 碼 解決方法:您的組織要求您更改 PIN 碼 Oct 04, 2023 pm 05:45 PM

解決方法:您的組織要求您更改 PIN 碼

Windows 11 上調整視窗邊框設定的方法:變更顏色和大小 Windows 11 上調整視窗邊框設定的方法:變更顏色和大小 Sep 22, 2023 am 11:37 AM

Windows 11 上調整視窗邊框設定的方法:變更顏色和大小

如何在 Windows 11 上變更標題列顏色? 如何在 Windows 11 上變更標題列顏色? Sep 14, 2023 pm 03:33 PM

如何在 Windows 11 上變更標題列顏色?

OOBELANGUAGE錯誤Windows 11 / 10修復中出現問題的問題 OOBELANGUAGE錯誤Windows 11 / 10修復中出現問題的問題 Jul 16, 2023 pm 03:29 PM

OOBELANGUAGE錯誤Windows 11 / 10修復中出現問題的問題

Windows 11 上啟用或停用工作列縮圖預覽的方法 Windows 11 上啟用或停用工作列縮圖預覽的方法 Sep 15, 2023 pm 03:57 PM

Windows 11 上啟用或停用工作列縮圖預覽的方法

華為GT3 Pro和GT4的差異是什麼? 華為GT3 Pro和GT4的差異是什麼? Dec 29, 2023 pm 02:27 PM

華為GT3 Pro和GT4的差異是什麼?

Windows 11 上的顯示縮放比例調整指南 Windows 11 上的顯示縮放比例調整指南 Sep 19, 2023 pm 06:45 PM

Windows 11 上的顯示縮放比例調整指南

10種在 Windows 11 上調整亮度的方法 10種在 Windows 11 上調整亮度的方法 Dec 18, 2023 pm 02:21 PM

10種在 Windows 11 上調整亮度的方法

See all articles