2014-01-13 57 views
0

我有一個基本的抽象類(BC)。PHP靜態/抽象:如何使用繼承方法訪問私有變量?

我有一個擴展BC的抽象類X. X有一些私有變量。

我搜索一種可能性,使用BC中定義的方法(因此可以繼承到X),該方法可以列出X的所有變量,包括私有變量。

據我所知,除非我用BC和X類定義中的這個特徵將BC方法轉換爲特徵,否則這是不可能的?

有沒有其他解決方案可以讓我直接在BC中定義方法?

+5

私人會員被稱爲私人會員,因爲他們是私人會員。 – zerkms

+0

我不知道你是如何從「私人」成員到「特質」的。 – PeeHaa

+0

在這種情況下'受保護的'是好的 –

回答

0

如果BC是X的一個實例,您可以嘗試將您的方法調用傳遞給X. X中的方法將再次傳遞所需的信息。

if ($this instanceof X) { 
    ... // call X-specific method 
} 
0

我的錯誤理解 - 抱歉,仍然是面向對象的初學者(和苦難)。

我沒有意識到私有方法對於一個類是非常私有的,並且這甚至不會繼承到繼承的類。

但它是有道理的。我的結論是:只使用私有極少數情況下,標準使用將比私有更受保護(對於任何應該繼承但不可從外部訪問的內容)。