程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP中的面向對象編程:通向大型PHP工程的辦法

PHP中的面向對象編程:通向大型PHP工程的辦法

編輯:PHP綜合

這篇文章介紹在 PHP 的面向對象編程(OOP)。我將演示如何用面向對象的概念編出較少的代碼但更好的程序。祝大家好運。

面向對象編程的概念對每一個作者來說都有不同的看法,我提醒一下一個面向對象語言應有的東西:

- 數據抽象和信息隱藏

- 繼承

- 多態性

在PHP中使用類進行封裝的辦法:

<?php
class Something {
   // In OOP classes are usually named starting with a cap letter.
   var $x;
   function setX($v) {
     // Methods start in lowercase then use lowercase to seprate
     // words in the method name example getValueOfArea()
     $this->x=$v;
   }
   function getX() {
     return $this->x;
   }
}
?>

當然你可以用你自己的辦法,但有一個標准總是好的。

PHP 中類的數據成員使用 "var" 定義,數據成員是沒有類型直到被賦值。一個數據成員可能是一個 integer、數組、聯合數組 (associative array) 或甚至對象(object). 方法在類裡定義成函數,在方法裡存取數據成員,你必須使用 $this->name 這樣的辦法,否則對方法來說是一個函數的局部變量。

使用 new 來創建一個對象

$obj = new Something;

然後使用成員函數

$obj->setX(5);

$see = $obj->getX();

setX 成員函數將 5 賦給對象(而不是類)obj 中成員變量, 然後 getX 返回值 5.

你也可以用對象引用來存取成員變量,例如:$obj->x=6; 然而,這不一種好的面向對象編程的方法。我堅持你應使用成員函數來設置成員變量的值和通過成員函數來讀取成員變量。如果你認為成員變量是不可存取的除了使用成員函數的辦法,你將成為一個好的面向對象程序員。但不幸的是 PHP 本身沒有辦法聲明一個變量是私有的,所以允許糟糕的代碼存在。

在 PHP 中繼承使用 extend 來聲明。

<?php
class Another extends Something {
   var $y;
   function setY($v) {
     // Methods start in lowercase then use lowercase to seperate
     // words in the method name example getValueOfArea()
     $this->y=$v;
   }
   function getY() {
     return $this->y;
   }
}
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved