zoukankan      html  css  js  c++  java
  • PHP 代码跟踪

    怎么知道代码的执行过程呢,也就是说怎么知道:是先执行哪些代码,然后执行哪些代码呢?

    这里有一个非常犀利的函数,可以让你知道代码的执行过程 debug_backtrace()  函数。

    来一段代码:

    Logger::$to_php_log = function ($level, $message)
            {
    			if($level < Logger::$level) return;
    			
                $titles = array(
                    Logger::DEBUG => E_USER_NOTICE,
                    Logger::INFO => E_USER_NOTICE,
                    Logger::WARNING => E_USER_WARNING,
                    Logger::ERROR => E_USER_ERROR,
                );
                $caller = debug_backtrace()[2];
                trigger_error($message.' in '.$caller['file'].' on line '.$caller['line'].''."
    <br />", $titles[$level]);
            };
    

      

    上面的 $caller = debug_bacetrace()[2] 的意思是调用当前这个 函数的 再往前推两层的那个函数。  $caller 指向的就是调用当前函数的前两层函数,我不知道讲清楚了没有:

    在讲一下:

    funtion A(){
          
            function B  (){
                        
                        function c(){
                                 $caller = debug_backtrace()[2];
                        }                
     
            }
            
    }
    

      假设当前执行的函数是 c 的话,那么,上面的 $caller 就是外面的函数A(). 我要说的就是这个意思。

    这里记录一下 debug_backtrace() 这个函数的用法。 

  • 相关阅读:
    JAVA课后作业
    类中创建对象的个数
    JAVA动手动脑及课后思考
    JAVA课后作业
    java课后思考
    加法
    大道至简第一章伪代码
    解决得到网络流不支持查找的方案
    row_number() over(partition by 列名1 order by 列名2 desc)的使用
    SQL中的特殊符号
  • 原文地址:https://www.cnblogs.com/oxspirt/p/5510155.html
Copyright © 2011-2022 走看看