php中常數和靜態變數的區別:1、常數都是不可變的量,而靜態變數可以透過self來賦值改變;2、在編譯效率上,常量的編譯過程較快,而靜態變數的編譯過程較慢。
本教學操作環境:windows10系統、PHP7.1版、DELL G3電腦
在效率上:常數編譯過程比靜態變數快的多。
程式碼:
<?php error_reporting(E_ALL); class A { const c = 9; public static $b = 5; public function setst ($ca) { self::$b = $ca; } } $obj = new A; echo $obj->c;//出错,是类的属性,不是对象的属性 echo $obj->$b;//出错,是类的属性,不是对象的属性 echo $obj::c;//ok, echo A::c;//ok echo $obj::$b;//ok echo A::$b;//ok $obj->setst(100);//更改静态变量的值 echo $obj::$b;//更改成功 ?>
結論:
實例的屬性才可以用 $obj->c 這種方式存取。
靜態變數和常數都是類別的屬性,類別的屬性都用雙冒號存取(::),透過物件或類別名稱都可以存取。
常數是不可變的,靜態變數可以透過self來賦值改變。
const常數:類別的不變屬性
static變數:類別的可變屬性
推薦學習:《PHP影片教學》
以上是php常數和靜態變數的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!