首頁  >  文章  >  後端開發  >  php常數和靜態變數的差別是什麼

php常數和靜態變數的差別是什麼

WBOY
WBOY原創
2022-02-10 15:36:483232瀏覽

php中常數和靜態變數的區別:1、常數都是不可變的量,而靜態變數可以透過self來賦值改變;2、在編譯效率上,常量的編譯過程較快,而靜態變數的編譯過程較慢。

php常數和靜態變數的差別是什麼

本教學操作環境:windows10系統、PHP7.1版、DELL G3電腦

php常數和靜態變數的差異是什麼

在效率上:常數編譯過程比靜態變數快的多。

程式碼:

<?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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn