static修飾的類屬性

2021-09-02 03:42:20 字數 856 閱讀 3791

我看書上說:static成員總是唯一存在的,並且在多個物件之間互享。

因此想到,如果我在a.php中例項化了person.class.php這個類,並給static $name賦值,那麼在b.php中再次例項化這個類,b中能不能讀取name屬性的新值呢?

**如下:

person.class.php

<?php

class person

function getname()

}?>

a.php

<?php 

include 'person.class.php';

$ren = new person();

person::$name = 'aa';

echo $ren -> getname(); //aa

$ren2 = new person();

echo $ren2 -> getname(); //aa

?>

b.php

<?php 

include 'person.class.php';

$ren3 = new person();

echo $ren3 -> getname(); //null

?>

事實證明:static成員只能在「同一指令碼」的多個物件之間互享,b.php並不能讀取a.php設定的屬性值,後來想到這也理所當然,因為php可以同時產生多個程序,當執行完乙個指令碼後會自動釋放記憶體,因此b.php無法讀取a.php設定的屬性!

static完整使用說明:見《細說php》第284頁。

static與final修飾類屬性及初始化問題

static 1.static修飾乙個屬性字段,那麼這個屬性欄位將成為類本身的資源,public修飾為共有的,可以在類的外部通過test.a來訪問此屬性 在類內部任何地方可以使用。如果被修飾為private私有,那麼只能在類內部使用。2.如果屬性被修飾為static靜態類資源,那麼這個字段永遠只有乙...

static修飾屬性

今天寫程式遇到一點小問題,最後問題出在成員變數修飾符上,static修飾符 public class students public int getid public void setid int id public string getname public void setname string...

static修飾屬性,方法,類

本文 於 一 static修飾屬性 1.屬性隨著類的載入而載入,是類變數,其載入早於物件,不需要new即可載入 2.類變數所在的類的所有物件共用這乙個屬性,存放在靜態域中 二 static修飾方法 1.方法隨著類的載入而載入隨著類的載入而載入,是類方法,其載入早於物件,不需要new 2類方法所在的類...