我正在將PHP 5.2.x應用程序遷移到新的5.2.x服務器。舊服務器多年前實際上是作爲PHP 4.0服務器啓動的,隨着時間推移升級到PHP 5.2。如果此模塊多次使用,我們的其中一個模塊具有重新聲明的功能。我們可以很容易地解決這個問題,但是我們對它的工作方式感到困惑。Redeclare函數適用於舊服務器,但不是新的
在新的服務器會失敗,並預期:
Fatal error: Cannot redeclare function
的問題是,舊的服務器上總是重複聲明的功能!有沒有PHP設置或特殊用法在這裏使用,使其在一臺服務器上工作,但不是另一臺?
謝謝!
編輯仍在嘗試如何實現這一點。該網站致命錯誤,但在該錯誤點後執行。
你確定嗎?沒有一些**嚴重的[hackery](http://www.php.net/manual/en/ref.runkit.php),你永遠無法重新聲明一個PHP函數。 – ceejayoz 2012-03-26 20:52:01
PHP4允許函數重新定義,PHP5不允許。您必須將模塊更改爲include_once/require_once,或將函數定義包裝在一個'if(!function_exists('...')){...}塊中。 – 2012-03-26 20:52:34
@MarcB我真的一直在使用PHP5嗎?我可以發誓PHP4也不允許它。 – ceejayoz 2012-03-26 20:53:13