2017-02-28 79 views
0

Fatal error: Cannot redeclare encrypt() (previously declared in /var/www/html/Medapps_UAT/data/config.inc.php:136)致命错误:不能重新声明user_defined_function()

含的config.inc.php使用require_once

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版本5.1.6。

回答

1

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

你有几个选择;

您可以使用realpath()将整个路径返回到文件;

或者,你可以在$_SERVER使用DOCUMENT_ROOT属性。

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

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

+0

实际上目前在project_name/data/config.inc.php中存在config.inc.php。 emp_details.php文件出现在project_name/api/emp_details.php中我们使用..来包含config.inc.php – sridhard

0

确保你没有在同一名称的任何包含文件,例如“的lib/nusoap.php”,“的lib/nusoapmime.php”或“加密”声明函数在您目前的档案'tax_calculation.php'中。

如果您正在使用的任何IDE净豆日食,只需导入在IDE中的项目和搜索功能名称。您可以轻松找到总发生次数。然后重命名函数名称并检查。

+0

encrypt()函数仅用于config.inc.php中的文件 – sridhard

+0

尝试隐藏该行require_once(“../ data/config.inc.php”);在emp_details.php中检查。 – Karthikeyani

+0

它在emp_details.php中发表评论后有效。但我无法访问config.inc.php中的函数使用对象**示例代码**'class tax_calculaction {public function __construct(){$ this-> connection = new database()}'执行停止在构造函数 – sridhard

相关问题