PHP之物件導向的程式設計(一)

2021-07-14 04:45:58 字數 2503 閱讀 9425

const是用於類成員常量的定義了,定義之後不可改,而define我們定義的是全域性常量了, 這樣我們在其它地方訪問但不能改變了,具體還有一些細節我們下面給各位列出來吧

注意:define不能定義在類中,而const必須定義在類中,並且const必須通過類名::變數名來進行訪問

const用於類成員變數定義,一旦定義且不能改變其值。define定義全域性常量,在任何地方都可以訪問。

define不能在類中定義而const可以。

const不能在條件語句中定義常量

const採用乙個普通的常量名稱,define可以採用表示式作為名稱。

const只能接受靜態的標量,而define可以採用任何表示式。

const 總是大小寫敏感,然而define()可以通過第三個引數來定義大小寫不敏感的常量

使用const簡單易讀,它本身是乙個語言結構,而define是乙個方法,用const定義在編譯時比define快很多。

訪問物件的成員通過物件的引用來訪問:

例如:對成員屬性的訪問包括賦值操作和獲取成員屬性的操作。

訪問物件中的成員和訪問陣列中的元素類似。只能通過物件的引用來訪問物件中的每個成員。

$引用名 = new 類名稱([引數數列表]);    //物件例項化格式

$引用名 -> 成員屬性 = 值; //對成員屬性賦值的操作

$echo $引用名 -> 成員屬性; //獲取成員屬性的值

$引用名 -> 成員方法; //訪問物件中的成員方法

如果物件中的成員不是靜態的那麼,「物件引用名->屬性」或「物件引用名->方法」是唯一的訪問形式。

不管是在物件的外部還是在物件的內部,訪問物件中的成員都必須使用物件的引用變數。

但物件建立完成以後,物件的引用名稱無法在物件的方法中找到。

如果在物件的方法中再使用new關鍵字建立乙個物件則是另乙個物件,呼叫的成員也是另乙個新建立物件的成員。

物件一旦被建立,在物件中的每個成員方法裡面都會存在乙個特殊的物件引用「th

is」。

成員方法

屬於哪個

物件, this引用就代表哪個物件,專門用來完成物件內部成員之間的訪問。

不管是在物件內部使用$this訪問自己物件內部的成員,還是在物件外部通過物件的引用名稱訪問物件中的成員。都需要使用特殊的運算子」->」

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

class person

function run()

}$a =new person();

$a -> name="jack";

$a -> *** = 'man';

$a -> age = 15;

$a -> say();

$a -> run();

在php中,訪問類的方法/變數有兩種方法:

建立物件ob

ject

=new

clas

s(),

然後使用

」−>」調

用:object->attribute/function,前提是該變數/方法可訪問。

直接呼叫類方法/變數:class::attribute/function,無論是靜態/非靜態都可以。但是有前提條件:

- 如果是變數,需要該變數可訪問。

- 如果是方法,除了該方法可訪問外,還需要滿足:

- 如果是靜態方法,沒有特殊條件;

- 如果是非靜態方法,需要改方法中沒有使用$this,即沒有呼叫非靜態的變數/方法,當然,呼叫靜態的變數/方法沒有問題。

然後我們再看一下使用$object->… 和使用class::… 都有什麼區別:

使用$object->… ,需要執行建構函式建立物件;

使用class::… 呼叫靜態方法/變數,不需要執行建構函式建立物件;

使用class::… 呼叫非靜態方法/變數,也不需要執行建構函式建立物件。

然後奇怪的地方就出來了,既然2和3都一樣,那靜態方法/變數存在還有什麼意義呢?

差異還是顯然存在的,如下:

靜態變數

靜態成員只保留乙個變數值,而這個變數值對所有的例項都是有效,也就是說,所有的例項共享這個成員。

靜態方法

靜態方法可以直接使用class::… 來呼叫,而非靜態方法需要滿足一定限制條件才能使用class::.. 的方法呼叫

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

class person

function run()

}person:: $name = '李四';

person:: $*** = '男';

person:: $age = 15;

$a =new person();

$a -> say();

$a -> run();

php之物件導向思想

ooa object oriented analysis 物件導向分析 ood object oriented design 物件導向設計 oop object oriented programing 物件導向過程 物件導向的三大特性 封裝 繼承 多型。記憶體分為 棧空間段,堆空間段,段,初始化靜態...

PHP之物件導向學習

class lio php class lio 類son 繼承 lio class son extends lio 類的例項化 name new son sanmei public能夠訪問 echo name pub protect僅僅在子類中 通過 public function 實現呼叫 pri...

python之物件導向程式設計

物件導向的程式設計的核心是物件 上帝式思維 要理解物件為何物,必須把自己當成上帝,上帝眼裡世間存在的萬物皆為物件,不存在的也可以創造出來。物件是特徵和技能的結合,其中特徵和技能分別對應物件的資料屬性和方法屬性。優點是 解決了程式的擴充套件性。對某乙個物件單獨修改,會立刻反映到整個體系中,如對遊戲中乙...