我看書上說: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類方法所在的類...