一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

PHP 面向?qū)ο髮?shí)現(xiàn)代碼

1,簡(jiǎn)單的對(duì)象創(chuàng)建
復(fù)制代碼 代碼如下:
//類(lèi)的作用域final:將阻止子類(lèi)重寫(xiě)這個(gè)字段
//方法的作用域abstract: 在父類(lèi)中聲明,在子類(lèi)中實(shí)現(xiàn)
//定義類(lèi):
class Employee{
//定義字段
private $name;
protected $title;
public $wage;
//常量
const PI = 3.1415926;
//靜態(tài)成員變量
private static $visitors = 0;
//定義構(gòu)造函數(shù)
function __construct(){
//使用靜態(tài)成員變量
self::$visitors++;
echo "constructor";
}
//定義析構(gòu)函數(shù)
function __destruct(){
echo "destruct";
}
//聲明方法
public function clockIn(){
//使用字段
echo "Member $this->name";
}
//在訪問(wèn)一個(gè)對(duì)象并不擁有的屬性時(shí)(比如私有字段),如果該對(duì)象用戶(hù)__get和__set方法,則會(huì)自動(dòng)調(diào)用__get方法或__set方法
function __set($property,$value){
$this->$property = $value;
}
function __get($property){
return $this->$property;
}
}
//類(lèi)的繼承 Manager繼承Employee
class Manager extends Employee {
function __construct(){
//調(diào)用父類(lèi)的構(gòu)造函數(shù)或方法
parent::__construct();
parent::clockIn();
echo "Manager constructor";
}
}
//創(chuàng)建對(duì)象
$employee = new Employee();
$employee->wage = 10000;
//使用常量
echo Employee::PI;
//調(diào)用方法
$employee->clockIn();
$manager = new Employee();
//instanceof判斷一個(gè)對(duì)象是類(lèi)的實(shí)例、類(lèi)的子類(lèi),還是實(shí)現(xiàn)了某個(gè)特定接口
if($manager instanceof Employee ) echo "Yes";

2,高級(jí)OO特性
(1)對(duì)象克隆
復(fù)制代碼 代碼如下:
//對(duì)象克隆
class ClassA{
private $name;
private $title;
public function setName($name){
$this->name = $name;
}
function getName(){
return $this->name;
}
public function setTitle($title){
$this->title = $title;
}
public function getTitle(){
return $this->title;
}
function __clone(){
echo "我被克隆了","<br>";
}
}
$classA = new ClassA();
$classA->setName("NameA");
$classA->setTitle("TitleA");
$classB = clone $classA;
$classB->setName("NameB");
echo $classA->getName(),"<br>",$classA->getTitle(),"<br>";
echo $classB->getName(),"<br>",$classB->getTitle(),"<br>";
/* output
我被克隆了
NameA
TitleA
NameB
TitleA
*/

(2)接口
復(fù)制代碼 代碼如下:
//接口
interface IPillage{
function method();
}
class ClassC extends ClassA implements IPillage {
function method(){
echo "inteface method";
}
}
$classC = new ClassC();
$classC->method();
//inteface method

(3)抽象類(lèi)
復(fù)制代碼 代碼如下:
//抽象類(lèi),是不能實(shí)例化的類(lèi),只能作為其它類(lèi)繼承的基類(lèi)
abstract class BaseClass{
protected $name;
abstract function method();
}
class ChileClass extends BaseClass {
function method(){
echo "method";
}
}
$child = new ChileClass();
$child->method();
//output method

注:
如果要?jiǎng)?chuàng)建一個(gè)模型,這個(gè)模型將由一些緊密相關(guān)的對(duì)象采用,就可以使用抽象類(lèi)。如果要?jiǎng)?chuàng)建由一些不相關(guān)對(duì)象采用的功能,就使用接口。
如果必須從多個(gè)來(lái)源繼承行為,就使用接口。php可以繼承多個(gè)接口,但不能擴(kuò)展多個(gè)抽象類(lèi)。
如果知道所有類(lèi)都會(huì)共享一個(gè)公共的行為實(shí)現(xiàn),就使用抽象類(lèi),并在其中實(shí)現(xiàn)該行為。在接口中無(wú)法實(shí)現(xiàn)行為。

php技術(shù)PHP 面向?qū)ο髮?shí)現(xiàn)代碼,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产亚洲精品国产第一 | 狠狠干狠狠干狠狠干 | 国产中出视频 | 亚洲一区二区免费看 | 国产精品久久现线拍久青草 | 91免费视频网站 | 欧美日韩乱国产 | 2019天天操天天干天天透 | 婷婷色在线视频 | 韩国亚洲伊人久久综合影院 | 欧美在线xx | 狠狠狠狠狠干 | 久久婷婷激情综合色综合也去 | 69精品 | 亚洲国产精品一区二区三区在线观看 | 青青伊人91久久福利精品 | 亚洲精品国产专区91在线 | 女人与拘一级毛片 | 四虎激情影院 | 天天综合干 | 婷婷综合色 | 国产三级全黄在线观看 | 亚州毛色毛片免费观看 | 欧美人禽杂交狂配在线观看视频 | 美女牲交视频一级毛片 | 91伊人久久大香线蕉 | 国产伦精一区二区三区 | 亚洲综合在线视频 | 亚洲福利在线视频 | 亚洲黄色免费在线观看 | 亚洲图片欧美激情 | 国内精品视频在线播放 | 日本在线观看一级高清片 | 伊人影院在线观看视频 | 精品久久久久久中文 | 国产成人亚洲综合一区 | 91福利精品老师国产自产在线 | 黄视频入口 | 亚洲激情综合网 | 国产在线观看第一页 | 国产精品综合一区二区 |