【问题标题】:PHP log function redeclaration issue [duplicate]PHP日志函数重新声明问题[重复]
【发布时间】:2016-10-31 01:52:12
【问题描述】:

我在其他文件中有这个PHP 命名为logger_error_handler.php required,比如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 行:引用所述函数的结束标记

我在这里缺少什么?对我来说似乎没有重新声明,但我无法确定是什么原因造成的......

【问题讨论】:

  • 谢谢。我非常专注于 0512 行中的内容,我忘记了 requirerequire_once 相比如何工作...... 这些模棱两可的错误
  • 您能否接受我的回答,因为它是正确的,并且首先?

标签: php


【解决方案1】:

将包含语句更改为 include_once。

【讨论】:

    【解决方案2】:

    您包含来自多个文件的 logger_error_handler.php。 一个“肮脏”的选择是将 include() 更改为 include_once(),甚至 require_once()。

    但是,您还应该尝试了解为什么该文件被多次包含,像这样的文件应该主要包含在例如一个“loader.inc.php”文件等,每个页面只调用一次。

    【讨论】:

      猜你喜欢
      • 2012-06-11
      • 2013-10-04
      • 2012-12-31
      • 2011-09-12
      • 1970-01-01
      • 2013-05-02
      • 2011-07-17
      • 2010-11-19
      相关资源
      最近更新 更多