PHP 中的 -> 和 :: 的區(qū)別
->
類(lèi)中 用于引用類(lèi)實(shí)例的方法和屬性
例如:
class Test{ function add(){return $this->var++;} var $var = 0; } $a = new Test; // 實(shí)例化對(duì)象名稱(chēng) echo $a->add(); echo $a->var;
::
類(lèi)中 靜態(tài)方法和靜態(tài)屬性的引用方法
例如:
class Test{ public static function test(){ public static $test = 1; } }
類(lèi)的靜態(tài)方法和靜態(tài)屬性可以不用實(shí)例化對(duì)象直接使用(使用的方式是 類(lèi)名::靜態(tài)方法名 )
Test::test(); // 調(diào)用靜態(tài)方法test Test::$test; // 來(lái)取得$test靜態(tài)屬性的值
注:
靜態(tài)方法在讀到這個(gè)類(lèi)或者引入這個(gè)類(lèi)文件的時(shí)候,就已經(jīng)實(shí)例化并存放到內(nèi)存中了,非靜態(tài)類(lèi)則需要new一下。
靜態(tài)類(lèi)在內(nèi)存中即使有多個(gè)實(shí)例,靜態(tài)的屬性也只有一份。