PHP 7面向對象的全部文章(OOP)

大家在學習PHP的時候往往到了對象這一塊就不知所措了,丈二和尚摸不着頭腦了,那麼有沒有專門說清楚的PHP的對象是什麼呢?

接下我將給大家詳細講解PHP面向對象的4篇文章,你讀了這4篇文章一定會受益匪淺。

如果瀏覽不順暢請到原文章出處:https://www.sky8g.com/category/news/

請注意可能會提示風險,這是CSDN網站設置的問題,如果文章內的鏈接不是他們的網址,都會對用戶提示有風險,請點擊繼續訪問,本網站全部文章爲免費技術分享,請放心訪問,無需擔心。

請點擊此處查看完整文章:https://www.sky8g.com/category/news/
 

這四篇文章分別是:

PHP 高級教程-面向對象編程(OOP)[第一章]

PHP 高級教程-面向對象編程(OOP)[第二章]

PHP 高級教程-面向對象編程(OOP)[第三章]

PHP 高級教程-面向對象編程(OOP)[第四章]

 

首選第一章內容如下:如果你想全部閱讀請點擊上面的鏈接:

  1. PHP 面向對象編程(OOP)
  2. 什麼是面向對象編程?
  3. OOP的概念
  4. PHP 中的類(OOP)
  5. 在PHP中定義一個類
  6. PHP中定義類的語法
  7. 我們可以定義一個沒有任何變量的類嗎?
  8. 什麼是對象?
  9. 訪問類變量和方法
  10. PHP 訪問修飾符
  11. 何時使用哪個訪問修飾符
  12. PHP  $this關鍵字

PHP 面向對象編程(OOP)

自編程語言創建以來,計算機科學家一直致力於開發多種編程計算機的方法。最終,隨着越來越多的開發編程語言的出現,人們用來編寫程序的方式也發生了變化。方法論,算法,概念化,它們不斷髮展多年。目前,面向對象編程是一種用於編程任何應用程序的流行方法。

必須以非常特定的方式設計特定的編程語言,以便可以遵循特定的方法。就PHP而言,它是一種面向對象的編程語言。在本節中,我們將看到PHP中支持或使其成爲面向對象編程語言的功能。首先,讓我們試着理解什麼是面向對象編程?(或OOP)及其概念。

什麼是面向對象編程?

面向對象編程是一種編程風格,它與類,對象和圍繞這兩者的各種其他概念相關聯,如繼承(Inheritance)多態(Polymorphism)抽象(Abstraction)封裝(Encapsulation )等。

OOP的設計方式是在編程時應該關注對象而不是程序。對象可以是我們在我們周圍看到的任何東西。它可以是一個人(有一些屬性,如 : 姓名,地址,出生日期等),一把椅子(大小,材料,成本等),一所學校(按地點,學生數量,結果)等

面向對象編程使編程接近現實生活,因爲我們總是處理一個對象,對它執行操作,使用它的方法和變量等。

OOP的概念

讓我們通過一個簡單的例子來嘗試理解所有這些。人類是生物形式,大致分爲男性和女性兩種類型。對?這是真的。每個人(男性或女性)都有兩條腿,兩隻手,兩隻眼睛,一隻鼻子,一隻心臟等。有男性和女性常見的身體部位,但是男性身上有一些特定的身體部位。女性不存在,女性存在一些身體部位但男性不存在。

所有人類都會走路,喫飯,看,說,聽,等等。現在,男性和女性都會執行一些共同的功能,但兩者都有一些細節,對另一個則無效。例如:A女性可以分娩,而男性則不能分娩,所以這隻適用於女性。

人體解剖學很有意思,不是嗎?但是讓我們看看這一切是如何與PHP和OOPS相關的。在這裏,我們將嘗試通過此示例解釋所有OOPS概念,在下面一個教程中,我們將爲所有這些提供技術定義

類(Class)

在這裏,我們可以將人類視爲一個階級。類是任何定義其屬性及其功能的功能實體的藍圖。像人類一樣,擁有身體部位,並執行各種行動。

繼承(Inheritance)

考慮HumanBeing一個具有手,腿,眼睛等屬性的類,以及像走(walk),說(talk),喫(eat),看(see)等功能MaleFemale也是類,但大多數屬性和函數都包含在內HumanBeing,因此它們可以繼承類中的所有內容HumanBeing使用繼承的概念。

對象(Objects)

我的名字是SKY8G,我是班級的實例/對象男人。當我們說人類,男性或女性,我們只是意味着一種,你,你的朋友,我,我們是這些類的形式。而類只是一個邏輯定義。我們有物理存在的,而存在的這個物體被稱爲是對象。

抽象(Abstraction)

抽象意味着,在隱藏細節的同時向外界展示所需的東西。繼續我們的例子,人類可以說話,走路,聽,喫,但細節隱藏在外面的世界。在我們的案例中,我們可以將皮膚作爲抽象因子,隱藏內部機制。

封裝(Encapsulation) 

用我們的例子解釋這個概念有點棘手。我們的腿是綁定的,以幫助我們走路。我們的手,幫助我們抓住東西。這些屬性與函數的綁定稱爲Encapsulation。

多態性(Polymorphism)

多態性是一個概念,它允許我們通過改變它的完成方式或通過改變使用它的部分來重新定義某些東西的工作方式。兩種方式都有不同的術語。

PHP 中的類(OOP)

PHP是一種面向對象的編程語言,允許在開發任何軟件或應用程序時創建類和對象以遵循面向對象的編程範例。

 是一個用戶定義的數據類型,其包括局部變量局部方法

雖然對象的一個實例,它保存帶有賦值的局部變量,並且我們可以在其上調用類中定義的本地方法。

在本教程中,我們將學習如何在PHP中定義類以及如何創建其對象。

在PHP中定義一個類

當我們在PHP中定義一個類時,就像任何變量一樣,我們必須給我們的類命名,並且在用PHP命名我們的類時必須遵循一些規則,它們是:

  • 類名應以字母開頭。
  • 類名不應該是保留的PHP關鍵字。
  • 類名不應包含任何空格。

現在我們知道了與PHP命名約定相關的規則,讓我們創建一個名爲Person的簡單類。

PHP中定義類的語法

在PHP中定義類的語法非常簡單,我們使用關鍵字class後跟名稱,然後我們將類的代碼括在花括號{}中,就像函數/方法一樣。

以下是課程代碼Person

1

2

3

4

5

6

7

<?php

    class Person {

    

        // class variables and methods comes here...

        

    }

?>

 

 雖然它不是強制性的,但最好使用類名作爲PHP文件的文件名。此外,PHP允許在單個文件中定義多個類,但不建議再次使用它。

 

因此,我們將PersonPerson.php文件中保存該類的上述代碼。

現在讓我們在我們的類中添加一個變量來存儲一個人的名字。當我們在類中創建變量時,它被稱爲屬性

1

2

3

4

5

6

7

<?php

    class Person {

        // 存儲人名

        var $name;

        

    }

?>

var是在類中定義變量/屬性的關鍵字,是變量$name的名稱。

是時候在我們的類中添加方法/函數了。函數在類中定義時稱爲方法

在類中,方法被定義爲對類變量(屬性)執行某些操作或對類執行一些其他操作,例如打印所有變量的值,或者可以將數據存儲到數據庫等。

當我們定義獲取類變量值的方法並設置類變量的值時,這些方法稱爲Getter和Setter函數。

這些通常被命名爲get_NAME-OF-VARIABLE()set_NAME-OF-VARIABLE()

所以,對於變量$name,讓我們添加get_name()set_name()功能。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<?php

    class Person {

        // to store name of person

        var $name;

        

        // print name

        function get_name() {

            return $this->name;

        }

        

        function set_name($new_name) {

            $this->name = $new_name;

        }

        

    }

?>

當我們學習如何創建類的對象時,我們將更多地討論爲什麼我們需要getter和setter函數。

我們可以定義一個沒有任何變量的類嗎?

是的,一個簡單的類不需要任何變量。我們可以簡單地介紹一些方法。這些類通常是輔助類,其中包含一些有用的常用方法。

讓我們用兩個方法創建一個名爲Human的簡單類:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<?php

    class Human {

        

        // for male

        function male() {

            echo "This human is a male";

        }

        

        function female() {

            echo "This human is a female";

        }

        

    }

?>

對於上面的類,所有對象都是相似的,因爲沒有變量。

當我們在類中有變量時,我們可以使用類變量的不同值創建該類的多個對象。

所以到現在爲止,我們希望您已經理解了類是什麼,它只是用戶定義的數據類型,它具有屬性/變量和類方法。在下面一個教程中,我們將學習如何創建類對象。

什麼是對象?

正如在上一個教程中所討論的,類只是藍圖或用戶定義的數據類型,可以通過創建其對象來使用。

類是一個邏輯實體,而它的對象是真實的。一個類一般包括局部變量局部方法

而一個對象是持有與分配和使用對象,我們可以調用類中定義的本地方法值局部變量的類的實例。

在本教程中,我們將學習如何在PHP中初始化任何類的對象。

在PHP中創建一個類的對象,要創建類的對象,我們使用new關鍵字。

讓我們快速舉例說明我們將爲一個簡單的PHP類創建對象。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<?php

    class Sky8g {

        // to store name of person

        var $url = "sky8g.com";

        

        // simple class method

        function desc() {

            echo "Sky8g helps you learn Coding.";

        }

    }

    

    // creating class object

    $obj = new Sky8g();

?>

如您所見,我們new在最後一行使用了關鍵字來創建Sky8g類的對象並將其分配給變量$obj。

一旦我們有了任何類的對象,我們就可以使用它來使用->操作符號訪問類方法變量

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<?php

    class Sky8g {

        // variable with a default value

        var $url = "sky8g.com";

        

        // simple class method

        function desc() {

            echo "Sky8g 幫助您學習編碼。";

        }

    }

    

    // creating class object

    $obj = new Sky8g();

    // accessing class variable

    echo $obj->url . "<br/>";

    // calling class method

    $obj->desc();

?>

輸出:

1

sky8g.com Sky8g幫助您學習編碼。

 

訪問類變量和方法

要使用類的對象訪問類變量和方法,我們使用->運算符,後跟變量名稱或方法名稱。

我們已經在上面的例子中展示了這個,但是讓我們有另一個例子,有一個更復雜的類。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

<?php

    class Person {

        // first name of person

        var $fname;

        // last name of person

        var $lname;

        

        function showName() {

            echo "My name is: " . $this->fname . "" . $this->lname;

        }

    }

    

    // creating class object

    $john = new Person();

    // assigning values to variables

    $john->fname = "sky8g";

    $john->lname = ".com";

    // calling the method function

    $john->showName();

?>

輸出:

1

My name is: sky8g.com

在上面的類中,在showName()我們使用$this關鍵字的方法內部,它用於引用調用對象。我們將在即將到來的教程中瞭解更多相關信息。

類似地,我們可以創建一個類的多個對象,其中不同的值分配給本地類變量。我們這樣做,

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

<?php

    class Person {

        // first name of person

        var $fname;

        // last name of person

        var $lname;

        

        function showName() {

            echo "My name is: " . $this->fname . "" . $this->lname;

        }

    }

    

    // creating class object

    $john = new Person();

    // assigning values to variables

    $john->fname = "sky8g";

    $john->lname = ".com";

    // calling the method function

    $john->showName();

    

    echo "<br/>";

    

    // creating class object

    $james = new Person();

    // assigning values to variables

    $james->fname = "www.sky8g";

    $james->lname = ".com/";

    // calling the method function

    $james->showName();

?>

輸出:

1

2

My name is: sky8g.com

My name is: www.sky8g.com/

類變量fname和lname,兩者都可以作爲對象單獨副本$john和$james,在這裏我們可以給它們賦值,然後使用它們。

PHP 訪問修飾符

要設置類方法和變量的訪問權限,我們使用訪問修飾符,它們只是PHP關鍵字。我們甚至可以將一些訪問修飾符分配給類本身,以使類以特殊方式運行。

以下是PHP 關鍵字,它們用作訪問修飾符及其含義:

  • public:當我們將類成員定義爲public時,可以從任何地方訪問它們,甚至可以從類範圍外部訪問它們。
  • private:當我們將類成員定義爲私有時,只能從類本身中訪問它們。
  • protected:這與private相同,但有一個例外,仍然可以從其子類訪問定義爲protected的類成員(我們將在學習繼承時瞭解子類)。
  • abstract:此關鍵字僅用於PHP類及其成員函數。
  • final:定義爲final的類方法不能被任何子類更改或覆蓋。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章