2011-03-17 56 views
0

我想用:我可以刪除一個php函數嗎?

function list(args); 

list是一個保留字。

我可以從PHP中刪除列表功能,禁用它,否則?

+1

不,但如果您在編輯器中按Ctrl + H,則可以在項目中替換** list **的所有實例,例如** list _ **。 – Hossein 2011-03-17 17:28:15

+0

Dup http://stackoverflow.com/questions/2302771/is-it-possible-to-escape-a-method-name-in-php-to-be-able-to-have-a-method-名字 http://stackoverflow.com/questions/5298507/php-reserved-names-functions – AlfaTeK 2011-03-17 17:31:22

+0

是啊我是所有關於史詩,感謝您的評論 – mononym 2011-03-17 17:40:39

回答

11

不,你不能也不應該。重新定義內置函數是一件壞事,尤其是像list這樣根本不重要的東西,它根本不是一個函數 - 它是一種語言結構。

您所能做的就是爲您的功能提供一個唯一的名稱。

5

您只能使用runkit或APD擴展名重命名/刪除核心函數。 list實際上並不是一個函數,而是一種語言結構,所以即使使用這些擴展名也不能重命名它。

你真的應該爲自己的函數使用更好的名稱選擇... list()並不特別有意義。列出什麼?

+0

http://php.net/manual/en/function .override-function.php – hsz 2011-03-17 17:28:37

+0

列表沒有意義!?你在開玩笑。那麼/ users/list /作爲url – mononym 2011-03-17 17:42:02

+1

/users/list /作爲一個網址,可以讓您瞭解正在列出的內容(用戶)......簡單地調用沒有上下文的函數列表()沒有告訴你它列出的內容 – 2011-03-17 17:43:43

6

在正常情況下,不可以,刪除一個函數。

使用runkit擴展(我已經幾乎沒見過安裝在服務器上! - 和絕對不會在生產服務器上),你有runkit_function_remove()功能,可以幫助。

與其他調試擴展相同,如APD,它提供​​,btw。


隨着PHP> = 5.3和命名空間,你也可以重新定義一個函數,你自己的命名空間內,這可能會進行排序的代替全局命名空間的之一。


但是請注意,list()不是一個函數:它是一個語言構建 - 和,因此,它不會表現得像功能...


作爲一個旁註:即使可能的話(和/或在可能的情況下),用你自己的替代現有的函數,並不是做同樣的事情,這不是一個好主意:讀取你的代碼並維護它的人會更難理解它能做什麼 !

相關問題