致命错误:无法重新声明encrypt()(之前已在声明中声明) /var/www/html/Medapps_UAT/data/config.inc.php:136)
使用require_once
包含config.inc.phpemp_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。
答案 0 :(得分:1)
这是因为PHP将../data/config.inc.php
和data/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中导入项目并搜索功能名称。您可以轻松找到总发生次数。然后重命名函数名称并检查。