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變量:類的可變屬性

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM