2017-02-28 81 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

相關問題