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