`
alfred_long
  • 浏览: 567262 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PHP 获取函数被调用的文件及行号等信息

    博客分类:
  • PHP
 
阅读更多

    要写个log函数,记录一些文件日志。想记录被调用的文件及位置。发现魔术函数__FILE__和__LINE__写在函数中,只是函数所在的文件和位置。并不是被引用的文件和位置。传递参数又感觉太麻烦。

 

找了个一个函数:debug_backtrace()

 

demo:

       public function write($message, $level, $fileName)
       {
           $debugInfo = debug_backtrace();
           $filePath = './'
           $message = date('Y/m/d H:i:s') . ' [' . $level . ']' .' ['.$fileName.'] '. $message . PHP_EOL;
           $message .= $debugInfo[0]['file']. ' ('.$debugInfo[0]['line'].')'.PHP_EOL;
           file_put_contents($filePath.$fileName."-".date('Y-m-d').'.log', $message, FILE_APPEND);
      }

 

分享到:
评论

相关推荐

    PHP获取指定函数定义在哪个文件中以及其所在的行号实例

    PHP是一种流行的开源...总结来说,本文提供了PHP中获取函数或方法定义文件和行号的一个实用示例。它展示了Reflection API在实际开发中的应用场景,帮助开发者在没有IDE辅助的情况下也能有效地进行代码调试和维护。

    php 魔术函数和常量一览表

    2. **\_\_FILE__**:包含文件的完整路径和文件名,用于获取文件信息或构建URL。 3. **\_\_FUNCTION__**:包含正在执行的函数名称(仅适用于函数内),可用于日志记录或调试。 4. **\_\_CLASS__**:包含当前类的...

    php函数列表

    - **`require_once`**:如果文件尚未被包含,则包含并执行指定文件。 - **`include_once`**:如果文件尚未被包含,则包含并执行指定文件。 #### 五、数学函数 - **`abs`**:返回数字的绝对值。 - **`acos`**:返回...

    PHP5函数小全(分享)

    这篇文章详细总结了PHP5中常用的一些函数,涉及到延迟执行、字符串和二进制处理、文件处理、网络连接、ZIP文件操作以及XML处理等多个方面。以下是对这些函数知识点的详细解释: 1. **延迟代码执行函数**: - `...

    php dirname(__FILE__) 获取当前文件的绝对路径

    即使这个b.php文件被其他目录的a.php文件通过require或include引用,变量$basedir内容仍然是b.php所在的文件夹路径,而不是变化到a.php文件所在的目录。 除此之外,PHP中还定义了一些其他的魔术常量,用于提供关于...

    PHP 魔术变量和魔术函数详解_.docx

    它们可以帮助我们轻松地获取关于代码执行状态的详细信息,比如文件位置、类或函数名,这对于调试、日志记录以及实现特定的编程逻辑非常有用。然而,由于它们的特殊性,过度依赖或误用这些特性也可能导致难以预料的副...

    php反射api.pdf

    此外,`getFileName()`、`getStartLine()`和`getEndLine()`提供了函数定义所在的文件和行号信息。`getDocComment()`返回函数的PHPDoc注释,`getStaticVariables()`获取函数中的静态变量,`invoke()`和`invokeArgs()`...

    PHP读取大文件末尾N行的高效方法推荐

    在PHP中,处理大文件时,直接使用`file()`函数加载整个文件到内存并不实际,尤其是对于内存有限或PHP `memory_limit`设置较低的情况。针对这种情况,我们可以采用更高效的策略来读取大文件的末尾N行。这种方法依赖于...

    PHP中简体 PHP语法.docx

    PHP提供了一些预定义常量,用于获取当前文件的信息和其他有用的元数据。 - **`__LINE__`**:返回当前行号。 - **`__FILE__`**:返回当前文件的完整路径和文件名。 **示例**: ```php <?php echo "当前文件名为: " ...

    PHP程序设计-3期(KC016) 经验技巧2-2 魔术常量.doc

    这在你需要在函数内部获取函数名,比如在回调函数或匿名函数中,可以避免硬编码函数名。 5. **__CLASS__**: 这个魔术常量返回当前类的名称,区分大小写。它在面向对象编程中尤其有用,例如在构造函数、魔术方法或者...

    [其他类别]PHP读取excel文件的源代码_excel_class.zip

    - `getCellValue()`: 获取指定单元格的值,可能需要传入行号和列号或单元格名称。 - `closeFile()`: 在完成读取操作后关闭文件句柄,释放资源。 4. **内存优化** 因为PHP在处理大文件时可能会消耗大量内存,所以...

    Php函数索引(很全的)

    `result_id`表示数据库查询结果的ID,`rownumber`指定要获取的行号,而`result_array`是一个数组,用于存储查询结果。在调用时,通常会在`result_array`前加上`&`符号,以引用传递。 4. **Ada_Autocommit()**:此...

    php学习笔记_心得

    PHP的内置异常类`Exception`具有几个属性,如异常信息、代码、发生异常的文件名和行号。你可以创建自定义异常类来扩展这个基础类。 4、**this, self, parent关键字的区别** - `this`关键字用于引用当前对象的实例...

    memcache.dll for php5.4

    `php_memcache.pdb`包含了关于`memcache.dll`的调试信息,如变量名、行号和函数名称等,这对于开发者调试代码和定位问题非常有帮助。在部署环境中,虽然pdb文件不是必须的,但在开发和测试阶段,它能提供关键的诊断...

    PHP反射介绍

    - `public ReflectionParameter[] getParameters()`:获取函数的所有参数。 4. **`ReflectionParameter`类**:同样实现了`Reflector`接口,用于获取和操作函数参数的信息。 - `public string getName()`:返回...

    php中高级常用面试题,php中高级常用知识点面试题

    4. **MySQL查询结果集总数的函数**:`mysql_num_rows()`用于获取SELECT语句的结果集行数,`mysql_affected_rows()`用于获取INSERT/UPDATE/DELETE语句影响的行数。 #### 五、MVC设计模式理解及常见开发设计模式 1. ...

    PHP函数大全

    `xml_get_current_line_number()`函数获取当前解析位置的行号。这对于错误定位和日志记录非常有用。 #### 49. xml_get_current_column_number() `xml_get_current_column_number()`函数获取当前解析位置的列号。这...

Global site tag (gtag.js) - Google Analytics