一、訪問物件屬性和方法的操作

菜刀的菜發表於2024-05-30

一、訪問物件屬性和方法的操作

在php中,訪問物件的屬性和方法,使用箭頭(->)來訪問:$obj->name、$obj>showinfo()
一、訪問物件屬性和方法的操作

二、偽變數$this使用

物件導向中的$this代表當前物件
$this代表當前物件,用來呼叫物件的屬性和方法
$this只能在成員方法中存在,其他方法都不能使用
一、訪問物件屬性和方法的操作

三、定義類的常量

常量:就是值永遠不變的梁,常量不能修改,常量也不能刪除。
提示:在一次http請求過程中,常量不能修改。
類常量定義使用const關鍵字,Define()定義的常量為全域性變數。
類常量,就是類的常量,與物件無關。
類常量,只能透過類名來呼叫(類名::常量);成員的東西,只能透過物件來呼叫。
訪問類常量,是透過範圍解析符(::)來訪問類的常量。例如:Student::TITLE
訪問物件的內容,是透過箭頭(->)來訪問的。例如:$obj->name、$obj->show()
類常量在記憶體中只有一份,不會隨著物件的增加而增加。類常量可以被所有物件共享。
好處:節省記憶體。例如:班級名稱、ICP備案號等
//定義格式:
const 常量名 = 常量值;

//語法說明:
//1.常量沒有許可權訪問符
//2.const定義的常量,一般認為是區域性常量;
//3.常量名不加$符號,儘量全大寫;
//4.常量的值,必須是一個固定的值;

一、訪問物件屬性和方法的操作

四、靜態屬性和靜態方法

Static關鍵字修飾的屬性,就是靜態屬性;
Static關鍵字修飾的方法,就是靜態方法
靜態屬性,就是類的屬性,與類相關,與物件無關;
靜態方法,就是類的方法,與類相關,與物件無關;
靜態屬性和靜態方法,是透過“類名::靜態屬性或靜態方法”方式來訪問的。
靜態屬性和靜態方法,在記憶體中只有一份,不會隨著物件的增加而增加。
好處:節省記憶體。可以被所有物件去共享。
靜態屬性的值是可以改變的,可以被所有物件共享。
靜態屬性和靜態方法,是有許可權限制的。

區分類常量和靜態屬性
舉例:“某班”的班級名稱用類常量定義比較好。
“全班人數”用靜態屬性來定義比較好。
特點:上面兩個名稱是所有同學共享;類常量永遠不變,人數可能會變(靜態屬性
一、訪問物件屬性和方法的操作


五、self關鍵字

$this代表當前物件,self代表當前類
$this用來呼叫物件的東西:成員屬性、成員方法、
self用來呼叫類的東西:類常量、、靜態屬性、靜態方法
$this使用箭頭(->)來呼叫成員屬性、成員方法
self使用(::)來呼叫類常量、靜態屬性、靜態方法;
$this只能用在成員方法中;self可以用在成員方法、靜態方法中
一、訪問物件屬性和方法的操作

六、構造方法

當使用new關鍵字,建立一個類的物件時,第1個自動呼叫的方法,就是構造方法。
構造方法的名稱是固定的:__construct()
構造方法可以有引數,也可以沒有引數
當new一個類時,類名後跟的小括號的引數,就是傳給構造方法的。例如:new Student(‘張三’,34)
構造方法的作用:物件初始化。例如:給私有屬性賦值、資料庫物件初始化(連通、選擇資料庫)
提示:構造方法只能定義一個;構造方法可有可無。
構造方法必須是成員方法。
//構造方法的定義格式
許可權控制符 function __construct(形參1,形參2,.....){
物件初始化的程式碼;
一、訪問物件屬性和方法的操作

七、析構方法

當銷燬一個物件前,自動呼叫的方法,就是析構方法。
析構方法的名稱是固定的:__destruct()
析構方法一定沒有引數,析構方法一定是成員中方法
析構方法的作用:垃圾回收。例如:可以斷開資料庫的連線、線上人數。
//析構方法的定義格式
許可權控制符 function __destruct(){
垃圾回收的功能程式碼;
一、訪問物件屬性和方法的操作

相關文章