面向對象設計是php程序開發中一個很重要的內容塊
維護簡單 模塊化是面向對象編程中的一個特征
可擴充性 面向對象編程從本質上支持擴充性
代碼重用 由於功能是被封裝在類中的
它比較適合多人合作來開發項目
本文主要講解了用php做面向對象編程的最基本的方法和代碼實例
public 表示全局
class Test{
public $name=
$sex=
$age=
function __construct(){
echo $this
}
function func(){
echo $this
}
}
$P=new Test();
echo
$P
$P
$P
$P
?>
private表示私有的
<?php
class Test{
private $name=
$sex=
$age=
function __construct(){
$this
}
function func(){
echo $this
}
private function funcOne(){
echo $this
}
}
$P=new Test();
echo
$P
$P
$P
$P
$P
?>
protected表示受保護的
在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
}
function getX() {
return $this
}
}
?>
當然你可以用你自己的辦法
PHP中類的數據成員使用 "var" 定義
使用 new 來創建一個對象
代碼如下 復制代碼$obj = new Something;
然後使用成員函數
代碼如下 復制代碼 $obj
$see = $obj
setX 成員函數將
你也可以用對象引用來存取成員變量
在 PHP 中繼承使用 extend 來聲明
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
}
function getY() {
return $this
}
}
?>
這樣類 "Another" 的對象擁有父類的所用成員變量及方法函數
$obj
$obj
$obj
多重繼承不被支持
在繼承類中你可以重新定義來重定義方法
你可以定義一個類的構造函數
class Something {
var $x;
function Something($y) {
$this
}
function setX($v) {
$this
}
function getX() {
return $this
}
}
?>
所以可以用如下方法創建對象
$obj=new Something(
構造函數自動賦值
function Something($x="
然後:
代碼如下 復制代碼 $obj=new Something(); // x=
$obj=new Something(
$obj=new Something(
缺省參數的定義方法和 C++ 一樣
只有當繼承類的構造函數被調用後
function Another() {
$this
$this
}
?>
多態性
function niceDrawing($x) {
//Supose this is a method of the class Board
$x
}
$obj=new Circle(
$obj
$board
$board
?>
和封裝有關的魔術方法
__set()
__get()
__isset(); 是直接isset查看對象中私有屬性是否存時自動調用這個方法
__unset(); 是直接unset刪除對象中私有屬性時
From:http://tw.wingwit.com/Article/program/PHP/201311/21100.html