PHP物件導向之 static

2021-09-01 07:46:07 字數 1556 閱讀 4483

眾所周知,oop的目的就是了把乙個次編寫**,複製複製再複製,繼承繼承再繼承的合理利用每一次的工作,同時也方便**管理。哪個環節出錯了就去找哪個環節。但是有時候我們寫的類,最終發現它只使用了一次,並沒有生成多個的例項。這個時候再去new, 不僅影響效率,**也顯得不夠簡潔。

所以非常感性的php,為我們提供了一種便捷高效的方法 static 有了它以後這些統統不再是問題。

class hw

} echo hw::hi();

view plaincopy to clipboardprint?

class hw

} echo hw::hi();

從上面的例子可以看出了,使用了static和不使用static屬性以後可以直接使用::方法從外面直接呼叫,但是為了效率和其他方面因素,還是建議使用static 來限制。

static 類內部呼叫方法

class foo

public static function a()

} foo::a();

使用了static 關鍵字來限制方法是必須使用self:: 在本類內部引用,上面的例子已經將的很清楚了。

static 屬性

view plaincopy to clipboardprint?

class foo

} foo::a();

echo foo::$a;

我們同樣可以使用static關鍵字來限制變數 這個時候變數不會一直保持上一次負值時候的值。

static 繼承與使用

view plaincopy to clipboardprint?

class foo

} class oo extends foo

} oo::a();

static 的繼承和普通類的繼承方法一樣,並沒有太大的區別。

view plaincopy to clipboardprint?

class foo

} class oo extends foo

} oo::aa();

只是使用的時候有寫區別,必須是parent::方法來引用父類的方法,並不能直接self::來使用父類的方法,如下例子,則不會顯示任何值:

view plaincopy to clipboardprint?

class foo

} class oo extends foo

} oo::a();

再乙個簡單的例子

view plaincopy to clipboardprint?

<?php

class status

?>

<?php

$exstatus = status::$ice;

if ($exstatus == status::$ice)

echo "ice";

else

echo "water";

?>

static之物件導向

一 靜態資料成員子 includeusing namespace std class point int point num 0 定義靜態資料成員 int main 對於類的非靜態資料成員,每個類物件都有自己的拷貝。而對於靜態資料成員被當作是類的成員。就像上述例子中,雖然定義了4個物件,但是靜態資料...

物件導向 static 十四

1.static關鍵字及記憶體圖 class demo1 static class person 建立物件記憶體圖 2.static關鍵字的特點 a static關鍵字的特點 a 隨著類的載入而載入 b 優先於物件存在 c 被類的所有物件共享 舉例 咱們班級的學生應該共用同乙個班級編號。其實這個特點...

Java物件導向 static

static 靜態的 屬於物件的屬性和方法是動態的,相反屬於類的就是靜態的。靜態的用途 修飾類的成員變數,稱為靜態變數,靜態變數是屬於類的變數,可以使用 類名.變數名 訪問,在類的內部可以省略類名。靜態變數只有乙份,可以被全體物件共享!軟體中只有乙份的資料應該使用static修飾。靜態變數在類載入期...