2010-11-28 112 views
6

我已經開始學習PHP。所以在我的Windows 7機器上安裝了WAMP服務器。我想下面的PHP代碼:功能ereg()已棄用

<?php 
$phrase = "I love PHP"; 
if (ereg("PHP", $phrase)) { 
    echo "The expression matches"; 
} 
?> 

當我在Mozilla的嘗試這樣做,我得到的輸出:

Deprecated: Function ereg() is deprecated in C:\wamp\www\learnphp\common.php on line 3 
The expression matches 

我覺得代碼是正確的。我無法理解錯誤。任何人都可以解釋一下這個「棄用」的意思嗎?以及如何解決這個錯誤?

我的php版本是5.3.0。它可以是版本問題?

編輯︰我GOOGLE了它,並發現有關include \ file.inc文件在www文件夾中的一些東西。我的www文件夾中沒有include目錄。

回答

13

「棄用」表示PHP 5.3.0不再支持該功能。你應該把ereg()視爲不存在了。

該函數仍然存在,但僅用於支持使用它的現有應用程序。編寫新代碼時,請勿使用棄用的函數。

取而代之,請考慮preg_match函數。

+0

感謝您的鏈接。 – narayanpatra 2010-11-28 16:00:34

6

棄用意味着此函數最終將在未來版本中從PHP中刪除。您不應該再在代碼中使用它,而是使用建議的替代方法。

在PHP的ereg, heed the notice in the PHP Manual的情況下:

在PHP 5.3.0中,正則表達式擴展有利於PCRE擴展的棄用。調用此函數將發出E_DEPRECATED通知。有關轉換爲PCRE的幫助,請參閱list of differences

另請參閱PHP手冊中關於E_DEPRECATED的說明。
對於PHP5.3中的所有不建議使用的功能,請參閱Deprecated features in PHP 5.3.x
有關更多一般信息,請參閱Wikipedia article on Deprecation in Software

+3

這也意味着你正在學習的教程是可怕的過時,你應該找到一個現代的。 – Quentin 2010-11-28 15:38:44

-2

這意味着你正在使用的功能已經過時。你不能再使用這個功能。我收到了與PHP 5.5.6相同的錯誤。解決您的問題的一個可能的方法是降級您的PHP版本,以便獲得支持。