2013-09-24 30 views
0

我在這裏遇到一個難題(我不確定這是可能的)。特殊多維數組

我想調用類與__get方法:

$P = ClassName(); 
$P->A = 0.1; 
$P->A->B = 0.5; 

這將返回此:

$P->A應該返回0.1(並執行__get法)

$P->A->B應該返回0.5(並執行A上的__get方法)

謝謝。

+4

怎麼可能'$ P->了'有一個數值,並與自身參數的對象在同一時間?老實說,我不知道你到底在問什麼 – kero

+0

這是不可能的。當你調用'$ P-> A-> B'時,get方法只給出屬性名稱'A',它不會得到'A-> B',所以它不能區分'$ P-> A'和'$ P-> A-> B'。 – Barmar

+0

' - >'運算符只能用於一個對象。 '$ P-> a'將返回一個值類型,所以你不能得到這個結果並訪問屬性'B'。 –

回答

0

要有

$P->A 

回報1.5是沒有問題的。你可以用__get來完成,儘管你不需要。我不相信,但你可以做

$P->A->B 

爲「A」將返回一個數字,不是一個對象,你就什麼都沒有與調用__get。然而這會工作:

$P->A->getValue() 
$P->A->B 

但有沒有辦法繞過它,使代碼工作原樣。

+0

在HTTP的情況下有:'__toString()'返回值,而 - > A爲對象。但是你必須以非常敬業和嚴格的方式編寫程序的其餘部分。 – hakre