2011-11-26 60 views
1

我在試圖編寫一個類來處理orm/database連接。

我的計劃是讓每個模型類擴展一個具有基本粗糙功能的基礎類。

我將靜態常量中的表名和主鍵名存儲爲PK & TABLE。

問題是我無法訪問主鍵名稱與以下沒有產生'Paamayim Nekudotayim'錯誤。

$this->static::PK

我可以這樣做:

$pk = static::PK
$this->$pk

,我甚至可以這樣做:

$this->fields[static::PK]

$this->static::PK

只是似乎沒有工作

任何想法,意見等,深受歡迎。

+0

不要將保留字,如「靜態」。 –

回答

2

我猜測構造是不明確的,解釋器不知道如何處理它,因此解析錯誤。換句話說,它不知道,如果你的意思是這樣的:

$s = $this->static; 
$s::PK; 

或本:

$pk = static::PK; 
$this->$pk; 

這兩者都是有效的,但工作非常不同的(你可以想像)。

用花括號來不斷的訪問,它會工作:

$this->{static::PK} 
+0

試過了, '$ this - >(static :: PK)' 但都沒有工作 – jx12345

+0

@ jx12345:同樣的錯誤?它適用於PHP 5.3.0。 – BoltClock

+0

啊對不起,我收回它 - 它是在我的代碼中繼續收集同一事物的第二個實例...〜謝謝!!! – jx12345

相關問題