2012-08-15 56 views

回答

5
Class Example 
{ 
    private $foo = 5; 

    function bar() 
    { 
     echo $this->foo; 
    } 
} 
+0

啊,愚蠢的我..我試圖與'$此 - > $ foo',這當然沒沒有工作,讓我研究所有其他的東西。謝謝! – user1293977 2012-08-15 09:14:02

+1

@ user1293977如果你已經爲名爲'$ foo'的'bar()'函數創建了一個局部變量,並且爲它賦值「foo」,那麼$ this - > $ foo'就可以工作。 – DaveRandom 2012-08-15 09:17:41

4

如果它應該只在你的類可用我的建議是:

class MyClass { 
    private $foo = 'bar'; 

    public function DoStuff() { 
     echo $this->foo; 
    } 

} 

,如果它應該可以從其他類,你應該實現getter和setter。

1

靜態變量可用而無需類的實例和所有實例之間共享

的const是恆定的 - 它的價值不能被改變

公共屬性屬於特定的實例,並且可以由任何對象進行更改,而不僅僅是實例。

所有的申報數據的有效方式,這取決於你所需要的。

你需要的數據是不可變更的嗎? (const) 你需要數據在課堂外可見嗎? (公) 你必須實例之間共享的數據(靜態的;請注意,你可以有私有靜態以及)

1

public $foo是一個變量,每個人都可以訪問像$my = new MyClass(); $my->foo並可以設置

public static $foo是一個變量,每個人都可以訪問像MyClass::foo,但不能設置

global $foo是一個可變的事每個人都可以設置和獲取類似$foo

define("FOO","myString")是一種全球性這一點,但可以通過FOO得到,但沒有設置

const foo就像是一個靜態

+0

如果你說可見性和鏈接手冊,你可以省下一些打字;) – hakre 2012-08-15 09:14:18

+0

,但只是給一個鏈接不是我們搖滾的方式SO – EaterOfCode 2012-08-15 09:15:24

+0

我說了一些打字。應始終添加適當的手冊鏈接(如「另請參見」)恕我直言 - 確保不單獨鏈接,這將更多的評論。 – hakre 2012-08-15 09:16:20

相關問題