PHP物件導向 靜態方法和靜態屬性2 2 2

2021-08-25 08:58:23 字數 918 閱讀 6144

靜態分為兩個部分:靜態屬性和靜態方法

靜態的東西都是給類用的(包括類常量),非靜態的都是給物件用的

在定義屬性的時候,使用關鍵字static修飾的屬性稱之為靜態屬性。

使用static關鍵字修飾的方法叫做靜態方法。

能用靜態解決的問題,不用普通方法解決問題(靜態的東西可以直接使用類訪問,不需要通過物件例項化,因此節省了記憶體空間,提公升了效率)。

從記憶體角度看:

static屬性存放在類的區域中,普通屬性存放在物件中

1. 類宣告完畢該屬性就存在,對於它的訪問不依賴於物件。

2. 因為類在記憶體中只有乙個,因此靜態屬性只有1個。

3. 當靜態屬性被某個物件呼叫過程中改變了值的話,那麼它就真的在類中改變了值。

和普通方法屬性的區別:

普通方法需要物件去呼叫,也就需要繫結$this,即普通方法必須要有物件去呼叫。

靜態方法不屬於哪個物件,不需要繫結$this,只需要類名就可以呼叫。

<?php

header("content-type:text/html;charset=utf-8");

class person

}//如何使用呢?

echo person::$name;

echo "

";echo person::get_username();

self代表類,$this代表物件

self訪問類內部的常量和靜態屬性和靜態方法,$this訪問物件的屬性和普通方法

self必須配合範圍解析操作符(::)才能生效,$this代表物件,物件本來就是一種資料型別,所以$this可以單獨被列印

非靜態的屬性和方法均用物件(

$this

)訪問,靜態的方法和屬性或常量均用類

(self)

來訪問

物件導向 類方法和靜態方法

1 類方法 是類擁有的方法,需要用裝飾器 classmethod來標識其為類方法,對於類方法,第乙個引數必須是類物件,一般以cls 作為第乙個引數 當然可以用其他名稱的變數作為其第乙個引數,但是大部分人都習慣以 cls 作為第乙個引數的名字,就最好用 cls 了 能夠通過例項物件和類物件去訪問 cl...

物件導向 類方法和靜態方法

1.在類定義中,使用 classmethod裝飾器修飾的方法 2.必須至少有乙個引數,且第乙個引數留給了cls,cls指代呼叫者即類自身 3.cls這個識別符號可以是任意合法名稱,但是為了易讀,最好不要修改 4.通過cls可以直接操作類的屬性 1.在類定義中,使用 staticmethod裝飾器修飾...

php 物件導向之繼承 多型和靜態方法

繼承 子類可以繼承父類的一切 特點 單繼承 父類 class ren 美國人的子類 class america extends ren 中國人的子類 class china extends ren c new china c say var dump a 多型 條件 1.必須要繼承。2.子類要對父類...