2011-06-11 52 views
0

可能重複:
Reference - What does this symbol mean in PHP?
PHP: Static and non Static functions and Objects
In PHP, whats the difference between :: and -> ?PHP使用類

我已經看到了不同的方式在PHP中如使用類

$myclass->method()

MyClass::method()

的區別是什麼?

+2

看看http://stackoverflow.com/questions/6313783/what-is-the-notation-in-php-used-for – Pav 2011-06-11 12:28:21

+0

也見:[在PHP中,什麼是::和 - >?](http://stackoverflow.com/questions/3173501/in-php-whats-the-difference-between-and) – ldg 2011-06-11 12:38:13

回答

2

在你的例子中,$ myclass看起來是類MyClass的一個實例,並且你正在調用一個實例方法。實例方法從類的實例中調用。

在第二個示例中,方法似乎是該類的static方法。在類級調用靜態方法,不需要實例。

1

從對象調用方法,所以你會做$myclass = new MyClass()首先,構造函數(__construct())被調用等

第二個是一個靜態調用:沒有對象被實例化,它不能使用$this參考。靜態變量是一樣的遍佈BTW的地方,而非靜態變量是特定於他們所在的對象

雖然問題是封閉的,你可能會發現在這裏靜一些好的信息:https://stackoverflow.com/questions/3090994/what-does-the-static-keyword-mean-in-oop

0

要能夠使用$myclass->method(),您首先必須創建該類的一個實例。

$myclass = new myClass();

第二使用沒有第一創建一個實例來訪問moethod。