我使用PHP的魔術__set
和__get
方法來訪問類中的私有數組。該類的使用可以包括「設置」新的屬性以及使用現有的屬性。我想確保創建或要求(即$myObj->FakeProperty
)的屬性名稱根據以下規則是有效的:正則表達式:RegEx用於確定有效的PHP類屬性名稱?
- 屬性名稱必須以字母開頭或下劃線[A-Z_]
- 如果它開始用下劃線,它必須跟
- 只要前兩個規則得到滿足的一封信中,名稱可以包含任何的[A-Z0-9 _]
我現在的正則表達式是不是做訣竅;與我的測試值,_12
總是通過裂縫。
測試區:
albert12
12Albert
_12
_Albert12
_12Albert
_____a_1
正則表達式:
^(?=_*[A-z]+)[A-z0-9_]+$
你希望只允許那些還允許類定義,就像'公共$標識符標識; '?還有其他方法來定義(公共)屬性,例如'$ x =新的StdClass; $ x - > {'12'} = 12; var_dump($ x);'是有效的並且正在工作。確切地說,你爲什麼要先測試它們?要麼他們出席/宣佈/定義,要麼他們不是。 – VolkerK 2010-03-25 22:38:57