要写个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中获取函数或方法定义文件和行号的一个实用示例。它展示了Reflection API在实际开发中的应用场景,帮助开发者在没有IDE辅助的情况下也能有效地进行代码调试和维护。
2. **\_\_FILE__**:包含文件的完整路径和文件名,用于获取文件信息或构建URL。 3. **\_\_FUNCTION__**:包含正在执行的函数名称(仅适用于函数内),可用于日志记录或调试。 4. **\_\_CLASS__**:包含当前类的...
- **`require_once`**:如果文件尚未被包含,则包含并执行指定文件。 - **`include_once`**:如果文件尚未被包含,则包含并执行指定文件。 #### 五、数学函数 - **`abs`**:返回数字的绝对值。 - **`acos`**:返回...
这篇文章详细总结了PHP5中常用的一些函数,涉及到延迟执行、字符串和二进制处理、文件处理、网络连接、ZIP文件操作以及XML处理等多个方面。以下是对这些函数知识点的详细解释: 1. **延迟代码执行函数**: - `...
即使这个b.php文件被其他目录的a.php文件通过require或include引用,变量$basedir内容仍然是b.php所在的文件夹路径,而不是变化到a.php文件所在的目录。 除此之外,PHP中还定义了一些其他的魔术常量,用于提供关于...
它们可以帮助我们轻松地获取关于代码执行状态的详细信息,比如文件位置、类或函数名,这对于调试、日志记录以及实现特定的编程逻辑非常有用。然而,由于它们的特殊性,过度依赖或误用这些特性也可能导致难以预料的副...
此外,`getFileName()`、`getStartLine()`和`getEndLine()`提供了函数定义所在的文件和行号信息。`getDocComment()`返回函数的PHPDoc注释,`getStaticVariables()`获取函数中的静态变量,`invoke()`和`invokeArgs()`...
在PHP中,处理大文件时,直接使用`file()`函数加载整个文件到内存并不实际,尤其是对于内存有限或PHP `memory_limit`设置较低的情况。针对这种情况,我们可以采用更高效的策略来读取大文件的末尾N行。这种方法依赖于...
PHP提供了一些预定义常量,用于获取当前文件的信息和其他有用的元数据。 - **`__LINE__`**:返回当前行号。 - **`__FILE__`**:返回当前文件的完整路径和文件名。 **示例**: ```php <?php echo "当前文件名为: " ...
这在你需要在函数内部获取函数名,比如在回调函数或匿名函数中,可以避免硬编码函数名。 5. **__CLASS__**: 这个魔术常量返回当前类的名称,区分大小写。它在面向对象编程中尤其有用,例如在构造函数、魔术方法或者...
- `getCellValue()`: 获取指定单元格的值,可能需要传入行号和列号或单元格名称。 - `closeFile()`: 在完成读取操作后关闭文件句柄,释放资源。 4. **内存优化** 因为PHP在处理大文件时可能会消耗大量内存,所以...
`result_id`表示数据库查询结果的ID,`rownumber`指定要获取的行号,而`result_array`是一个数组,用于存储查询结果。在调用时,通常会在`result_array`前加上`&`符号,以引用传递。 4. **Ada_Autocommit()**:此...
PHP的内置异常类`Exception`具有几个属性,如异常信息、代码、发生异常的文件名和行号。你可以创建自定义异常类来扩展这个基础类。 4、**this, self, parent关键字的区别** - `this`关键字用于引用当前对象的实例...
`php_memcache.pdb`包含了关于`memcache.dll`的调试信息,如变量名、行号和函数名称等,这对于开发者调试代码和定位问题非常有帮助。在部署环境中,虽然pdb文件不是必须的,但在开发和测试阶段,它能提供关键的诊断...
- `public ReflectionParameter[] getParameters()`:获取函数的所有参数。 4. **`ReflectionParameter`类**:同样实现了`Reflector`接口,用于获取和操作函数参数的信息。 - `public string getName()`:返回...
4. **MySQL查询结果集总数的函数**:`mysql_num_rows()`用于获取SELECT语句的结果集行数,`mysql_affected_rows()`用于获取INSERT/UPDATE/DELETE语句影响的行数。 #### 五、MVC设计模式理解及常见开发设计模式 1. ...
`xml_get_current_line_number()`函数获取当前解析位置的行号。这对于错误定位和日志记录非常有用。 #### 49. xml_get_current_column_number() `xml_get_current_column_number()`函数获取当前解析位置的列号。这...