最近我已經開始將我的框架轉換爲使用php命名空間和一個我似乎無法找到答案的問題 - 是否使用保留字是「合法」的作爲'對象','數組','字符串'作爲命名空間內的命名空間和類名稱?一個例子是:作爲名稱空間和類名的PHP保留字
namespace System\Object;
class String { }
class Array { }
最近我已經開始將我的框架轉換爲使用php命名空間和一個我似乎無法找到答案的問題 - 是否使用保留字是「合法」的作爲'對象','數組','字符串'作爲命名空間內的命名空間和類名稱?一個例子是:作爲名稱空間和類名的PHP保留字
namespace System\Object;
class String { }
class Array { }
PHP會拋出這樣的錯誤:如果您嘗試
Parse error: syntax error, unexpected T_ARRAY, expecting T_STRING
:
class Array
{
}
$myClass = new Array;
相反,嘗試像
class myArray
{
}
$myClass = new myArray;
[編輯]我會詳細說明一點,他們是reserv因爲在上面的第一個場景中,PHP無法區分定義數組或初始化相同名稱的類,因此會引發錯誤。例如,在MySQL中沒有辦法繞過這種情況,例如,您可以使用反引號來避開保留字。所以在PHP中,你不得不改變名字,你不必改變它,只要你不使用完全相同的名字作爲保留字,一個字符就會生效。
希望有幫助!
感謝Stu - 這就是我的想法,但無法用我的框架正確地測試它,因爲目前在我轉換所有內容時存在很多問題。 – 2012-08-03 08:47:48
我沒有問題之前使用過類對象,雖然我只擴展它,但實際上並沒有直接創建它。 – gunnx 2012-08-03 08:49:46
@gunnx,這很有趣...我以前沒有嘗試過,但是我想因爲你沒有明確地調用它,它不會像通過從php本身調用類那樣經歷相同的路由,一直是它的原因。雖然我不會推薦使用保留的名字,以防萬一您需要在未來擴展您的應用程序時,您永遠無法調用該類,重命名它將是一個痛苦,通過整個應用程序迭代。 – Stu 2012-08-03 09:13:34
你試過了嗎?我非常確定,如果它是非法的,PHP會對你大吼。 – 2012-08-03 08:31:53