致命错误:无法重新声明user_defined_function()

时间:2017-02-28 11:34:16

标签: php oop

  

致命错误:无法重新声明encrypt()(之前已在声明中声明)   /var/www/html/Medapps_UAT/data/config.inc.php:136)

使用require_once

包含config.inc.php

emp_details.php

<?php
ini_set("soap.wsdl_cache_enabled", "0");
require('lib/nusoap.php');
require('lib/nusoapmime.php');
require_once("../data/config.inc.php");
require_once("../tax_calculation.php");
.
.
.
?>

tax_calculation.php

<?php
 require_once("data/config.inc.php");
?>

因为我只使用了require_once,但获得了重新声明的功能。

php version 5.1.6。

2 个答案:

答案 0 :(得分:1)

这是因为PHP将../data/config.inc.phpdata/config.inc.php视为不同的文件。它不知道它已经包含它,因为文件路径不同。

你有几个选择;

您可以使用realpath()返回文件的完整路径;

require_once(realpath('../data/config.inc.php'));

或者,您可以使用DOCUMENT_ROOT中的$_SERVER属性。

require_once($_SERVER['DOCUMENT_ROOT'] . 'data/config.inc.php');

这应该确保这些文件只加载一次。

答案 1 :(得分:0)

确保您没有以相同名称声明该功能&#34; 加密&#34;在任何包含的文件中,例如&#39; lib / nusoap.php &#39;,&#39; lib / nusoapmime.php &#39;或者在您当前的文件中 tax_calculation.php &#39;。

如果您使用任何 IDE ,例如 net-beans eclipse ,只需在IDE中导入项目并搜索功能名称。您可以轻松找到总发生次数。然后重命名函数名称并检查。