PHP日志功能重新声明问题

时间:2016-06-28 16:09:59

标签: php

我在其他文件中提到了PHP logger_error_handler.php require d,例如foobar.php。它现在标记重新声明错误。

<?php  
    error_reporting(E_ALL);  
    set_error_handler("logger_error_handler");

    function logger_error_handler($errno, $errstr, $errfile=null, $errline=null, $errcontext=null) {
        $log = date("Y-m-d H:i:s - ");
        $log .= "Error: [". $errno ."], $errstr in $errfile on line $errline, ";
        $log .= "Variables: ". print_r($errcontext, true) ."\r\n";

        error_log($log, 3, "error_log.log");
        die("Error Found!");
    }
?>  
  

致命错误:无法在第12行的C:\ xampp \ htdocs \ foo \ bar \ logger_error_handler.php中重新声明logger_error_handler()(先前在C:\ xampp \ htdocs \ foo \ bar \ logger_error_handler.php:5中声明)
  第05行:指功能声明
  第12行:指所述函数的结束标记

我在这里缺少什么?似乎没有重新声明给我,但我无法确定导致它的原因......

2 个答案:

答案 0 :(得分:2)

将include语句更改为include_once。

答案 1 :(得分:1)

您从多个文件中包含logger_error_handler.php。 一个&#34;脏&#34;选项是将include()更改为include_once(),甚至是require_once()。

但是你也应该尝试一下这个文件被包含的原因,这样的文件应该主要包含在例如: a&#34; loader.inc.php&#34; fil等,每个页面只调用一次。