PHP物件導向程式設計入門

2022-09-17 22:15:18 字數 3804 閱讀 1648

class 類

object 物件

new 例項化

member 類成員

method 方法,成員函式

property 屬性,成員變數

constant 類常量

class classname

static

function

fn1()

public

function __construct($var

)

public

function

__destruct()

public

function

__clone()

}$c = new classname('test'); //

物件例項化

echo

$c->var.'

'; //

訪問物件屬性$obj->var

$c->var = 'update'; //

修改物件屬性

$c->new_var = 'add'; //

新增物件屬性

var_dump($c);echo '

';

unset($c->new_var); //

刪除物件屬性

var_dump($c);echo '

';

$c->fn0(); //

呼叫成員方法

echo classname::pi.'

'; //

訪問類常量,使用:類名::類常量名

echo classname::$s_var.'

'; //

訪問靜態屬性,使用:類名::$靜態屬性名

classname::fn1(); //

呼叫靜態方法

3.1、關鍵字:

類常量,不可修改性const(修飾屬性),類常量只能通過類訪問:類名加範圍解析操作符(雙冒號::)

靜態成員-static(修飾屬性和方法),靜態成員只能通過類訪問

不可繼承性final(修飾類和方法)

3.2、訪問控制符

public:表示公有的,其修飾的屬性和方法可以在類內和類外訪問,可以被繼承

protected:表示受保護的,,其修飾的屬性和方法只可以在類內訪問,可以被繼承

privated:表示私有的,其修飾的屬性和方法只可以在類內訪問,不可以被繼承

屬性前一定要加乙個訪問控制修飾符,類常量不用加訪問控制修飾符,方法前可以不加訪問控制修飾符,預設是public

如果需要實現真正的複製,可以使用物件轉殖方法:$b = clone $a;

私有化__clone方法可以禁止物件被轉殖:private function __clone(){}

類的訪問必須保證類在記憶體中已經存在,所有在使用類之前需要將包含類的php檔案載入到記憶體,本質是檔案載入。

手動載入:

if(!class_exists('man'))

new man();

自動載入:

php7以前:

function __autoload($class_name

)

//再嘗試去b資料夾中尋找類

$file = 'b/'.$class_name.'.class.php';

if(file_exists($file

))

//以此類推,直到找到類或找完所有包含類的資料夾為止

}$d = new dog(); //

例項化dog類,系統自動呼叫__autoload函式

php7以後:

function my_autoload($class_name

)

$file = 'b/'.$class_name.'.class.php';

if(file_exists($file))}

spl_autoload_register('my_autoload');

$d = new dog();

也可以分開多個載入函式:

function a_autoload($class_name)}

function b_autoload($class_name)}

spl_autoload_register('a_autoload');

spl_autoload_register('b_autoload');

$d = new dog();

自動載入類:

class

autoload

}public

static

function loadb($class_name

) }

}spl_autoload_register(

array('autoload','loada'));

spl_autoload_register(

array('autoload','loadb'));

$d = new dog();

單例模式:乙個類有且僅有乙個物件,例如作業系統中的資源管理器,目的是為了保護資源的唯一性

class

singleton

//類入口

public

static

function

getinstance()

return self::$object

; }

//私有化轉殖方法,防止轉殖產生新物件

private

function

__clone(){}}//

例項化兩個物件

$s = singleton::getinstance();

$s1 = singleton::getinstance();

var_dump($s,$s1); //

檢測到是同乙個物件

工廠模式factory:

由乙個地方生產物件,其他位置就不需要額外例項化物件,從而可以方便後期**統一維護(改名),方便隱藏真實的類結構。

工廠模式針對相似模型的統一產出,要有一批具有類似功能的類,其本質是相似的大類下的小類

靜態工廠(生產物件時需要知道類名):

class

man}

class

woman

}class

child

}class

humanfactory

}$m = humanfactory::getinstance('man');

$w = humanfactory::getinstance('woman');

$c = humanfactory::getinstance('child');

$m->display();

$w->display();

$c->display();

匿名工廠(生產物件時需要知道類名對應的符號):

class

humanfactory

} }$m = humanfactory::getinstance('m');

$w = humanfactory::getinstance('w');

$c = humanfactory::getinstance('c');

PHP物件導向程式設計快速入門

物件導向程式設計 oop 是我們程式設計的一項基本技能,php4對oop提供了良好的支援。如何使用oop的思想來進行 php的高階程式設計,對於提高 php程式設計能力和規劃好web開發構架都是非常有意義的。下面我們就通過例項來說明使用 php的oop進行程式設計的實際意義和應用方法。我們通常在做乙...

PHP物件導向程式設計快速入門

物件導向程式設計 oop 是我們程式設計的一項基本技能,php4對oop提供了良好的支援。如何使用oop的思想來進行php的高階程式設計,對於提高php程式設計能力和規劃好web開發構架都是非常有意義的。下面我們就通過例項來說明使用php的oop進行程式設計的實際意義和應用方法。我們通常在做乙個有資...

PHP物件導向程式設計快速入門

物件導向程式設計 oop 是我們程式設計的一項基本技能,php4對oop提供了良好的支援。如何使用oop的思想來進行php的高階程式設計,對於提高php程式設計能力和規劃好web開發構架都是非常有意義的。下面我們就通過例項來說明使用php的oop進行程式設計的實際意義和應用方法。我們通常在做乙個有資...