2012-02-05 91 views
1

我可以看到PHP 5.3.2有一個ArrayObject類。是否可以聲明一個名爲ArrayPHP數組,我可以定義我自己的Array類嗎?

的新對象,該對象擴展了ArrayObject。但是我不知道「陣列」是保留關鍵字,或者我應該用我自己的前綴即XArray(),MYARRAY等等

我想吃點什麼是

class Array extends ArrayObject { 

...my own code 

} 
+1

請參閱:http://www.php.net/manual/en/reserved.keywords.php – Matthew 2012-02-05 01:22:18

回答

8

所有你所要做的就是嘗試運行:

<?php class Array {} 

而且你會看到:

Parse error: syntax error, unexpected 'Array' 

所以答案是,不,你不能。您需要使用不同的名稱。

1

如果它現在有效,它可能會發生,他們確實在將來創建Array類。最好是遠離那些明顯符合語言定義的邏輯的名稱。

編輯:正如馬修指出的,它不起作用。看到他的回答讓我意識到爲什麼它不起作用:array是一個關鍵字在PHP(允許你做一個數組文字)和關鍵字在php中不區分大小寫。

+0

我認爲,在PHP中,並不總是很明顯什麼是「邏輯的語言」... – 2012-02-05 01:22:21

+0

是的如此真實,我試圖找到是否有一個名爲Array的類,但找不到它。不知道爲什麼類Array()不起作用? – IEnumerable 2012-02-05 01:23:38

+0

@KerrekSB絕對不總是。在這種情況下,我會說這很明顯。 – Jasper 2012-02-05 01:23:51

0

林不知道如果「陣」是一個保留關鍵字

這很容易檢查。 PHP's list of reserved keywords有「陣列()」列在前面和中心。

該頁面還列出了以下指導意見:

不能使用任何一個作爲常量,類名,函數或方法的名稱。將它們用作變量名通常是可以的,但可能會導致混淆。

所以不,你不能。您需要將您的類重命名爲其他名稱,因爲PHP類名不區分大小寫,所以您的名稱不能僅由letter-casing來區分。

+0

我知道關鍵字不區分大小寫(因此在這裏創建一個問題),但類名不區分大小寫? – Jasper 2012-02-05 01:34:50

+0

@Jasper這是正確的。有一個[更改請求](https://bugs.php.net/bug.php?id=26575&edit=1)詢問區分大小寫的類名,它的狀態是「不會修復」。另見http://stackoverflow.com/questions/5260168/capital-letters-in-class-name-php – Farray 2012-02-05 01:37:55

+0

我明白了。謝謝,這是goog學習新東西。 – Jasper 2012-02-05 01:40:40

相關問題