PHP物件導向和面向過程 崔元欣

2022-09-23 23:09:15 字數 3033 閱讀 2148

程式設計界不論是php、python都有這麼兩種程式設計思想,oop物件導向、pop面向過程,這兩種在功能上沒有多大區別,但是在**編寫上卻有很大區別。今天就記錄一下物件導向和面向過程的優點、缺點、定義、實現過程。

oop 物件導向

物件導向有兩個重要的概念:類和物件。

什麼是類?類是具備某項功能的抽象模型,在應用當中類需要例項化也就是new之後使用,這個時候就引出了物件。

什麼是物件?物件是類例項化之後的乙個產物,是乙個實體。

物件導向的3個基礎特徵:

封裝把客觀事物封裝成乙個類,通過修飾符改變屬性或函式的訪問許可權達到保護作用

繼承子類繼承父類,可以使用父類的公共屬性和方法,可以實現介面,同時實現介面裡的所有方法

多型覆蓋和過載,子類繼承父類,子類可以覆蓋父類中的方法。乙個類中可以同時擁有同乙個函式名的方法,但是方法的引數不同,實現結果也不同。

物件導向的幾個名詞:類、物件、屬性、方法、例項化。

物件導向優點:可擴充套件性高,可復用,易維護

物件導向缺點:程式設計複雜度高,效能比面向過程低(需要例項化類)

來一段簡單的**demo:

1 <?php 2

3 /**

4 * 物件導向

5 * 兩個重要概念

6 * class app 就是乙個類

7 */

8 class oop

25 26 }

27 28 /**

29 * 物件導向三大特徵

30 * 繼承 子類繼承父類 子類可以使用父類的公共屬性和方法

31 */

32 class oop1 extends oop

37 38 /**

39 * 物件導向三大特徵

40 * 多型 覆蓋和過載 子類繼承父類 子類可以覆蓋父類的方法,乙個類裡可以存在用乙個函式名方法,但是引數不一樣,結果也不一樣

41 */

42 public function dump()

46 47 }

48 49 /**

50 * 物件導向三大特徵

51 * 繼承 子類繼承父類 子類可以使用父類的公共屬性和方法

52 */

53 class oop2 extends oop

63 64 }

65 66 //類是具備某項功能的抽象模型,實際應用中要先例項化(new)後使用,以下就是例項化類,列印$class看到的結果就是物件

67 $class = new oop();

68 //object(oop)#1 (2) }

69 var_dump($class);

70 echo '

';71 //例項化之後就可以呼叫公共屬性(變數)

72 $name = $class->name;

73 var_dump($name);

74 echo '

';75 //例項化之後就可以呼叫公共函式(方法)

76 $class->dump();

77 echo '

';78 $class1 = new oop1();

79 var_dump($class1);

80 echo '

';81 $class1->dump1();

82 echo '

';83 $class1->dump();

84 $class2 = new oop2();

85 var_dump($class2);

86 echo '

';87 $class2->dump();

執行結果:

pop 面向過程

面向過程的**執行是從上到下(從前到後),有乙個個函式去實現步驟,使用的時候需要乙個乙個依次呼叫。

面向過程優點:效能比物件導向高(不用去例項化類),將複雜的問題流程化,進而簡單化。

面向過程缺點:不易維護,可擴充套件性不高。

**片段:

1 <?php 2

3 /**

4 * 面向過程的資料庫連線方式

5 */

6 7

8 function db($cnf)

24 $link = mysqli_connect($config['host'], $config['username'], $config['password'], $config['databases'], $config['port']);

25 if(mysqli_connect_errno($link))

28 // if(!$config['databases']) '", $link);

31 // mysqli_select_db($config['databases'], $link);

32 // }

33 $sql = 'select * from niuniu_user limit 1';

34 $query = mysqli_query($link, $sql);

35 $row = mysqli_fetch_array($query, mysqli_assoc);

36 if(mysqli_num_rows($query) > 1)

40 } else

43 44 var_dump($rows);

45 46 mysqli_close($link);

47 }

48 49

50 echo '面向過程的資料庫連線方式

';51

52 $cnf = [

53 'host' => '172.17.0.2',

54 'username' => 'root',

55 'password' => 'cuiyuanxin66666',

56 'databases' => 'nndb'

57 ];

58 59 db($cnf);

源**已上傳github:

純手打筆記,如有錯誤請評論提出,謝謝。

PHP物件導向和面向過程

物件導向,一定要物件導向,沒有物件就沒有老婆,沒有老婆就沒有小孩,沒有小孩就沒有未來 你要不是為了未來,就不用找物件,如果只是簡單的搞搞,可以找馬子 把馬子 釣凱子,都是面向過程的,過程一結束,馬子就不存在了,就好像你每天早上總是乙個人醒來 另外馬子很難公升級 鑑於馬子的不可預計性,她的維護也很困難...

物件導向和面向過程

面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。例如五子棋,面向過程的設計思路就是首先分析問題的步驟 1 開始遊...

物件導向和面向過程

物件導向和面向過程的區別 面向過程 更加關注整個程式的實現流程 物件導向 更加關注整個程式中有哪些類,每個類有哪些屬性,有哪些行為,它將整個功能劃分為許多小功能,分散到不同的類中,使用時,僅需命令相應的類完成相應的事情 物件導向的優勢 1.更高的容錯率 2.更易閱讀的 3.更易擴充套件 物件導向的劣...