欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

實(shí)例簡(jiǎn)介PHP的一些高級(jí)面向?qū)ο缶幊痰奶匦?/h1>
 更新時(shí)間:2015年11月27日 15:51:58   投稿:goldensun  
這篇文章主要以實(shí)例簡(jiǎn)單介紹了PHP的一些高級(jí)面向?qū)ο缶幊痰奶匦?包括在Java等OOP語(yǔ)言中所經(jīng)常見(jiàn)到的接口和抽象類等,需要的朋友可以參考下

一般來(lái)說(shuō),學(xué)習(xí)PHP需要了解下面的一些特性:

對(duì)象克隆。PHP5中對(duì)OOP模型的主要改進(jìn)之一,是將所有對(duì)象都看作引用,而不是值。但是,如果所有對(duì)象都視為引用,那么如何創(chuàng)建對(duì)象的副本呢?答案是通過(guò)克隆對(duì)象。

<?php
class Corporate_Drone{
 private $employeeid;
 private $tiecolor;
 function setEmployeeID($employeeid) {
 $this->employeeid = $employeeid;
 }

 function getEmployeeID() {
 return $this->employeeid;
 }
 
 function setTiecolor($tiecolor) {
 $this->tiecolor = $tiecolor;
 }
 
 function getTiecolor() {
 return $this->tiecolor;
 }
}

$drone1 = new Corporate_Drone();
$drone1->setEmployeeID("12345");
$drone1->setTiecolor("red");
$drone2 = clone $drone1;
$drone2->setEmployeeID("67890");

printf("drone1 employeeID:%d <br />",$drone1->getEmployeeID());
printf("drone1 tie color:%s <br />",$drone1->getTiecolor());
printf("drone2 employeeID:%d <br />",$drone2->getEmployeeID());
printf("drone2 tie color:%s <br />",$drone2->getTiecolor());
?>

繼承。如前面所述,通過(guò)繼承來(lái)構(gòu)建類層次體系是OOP的關(guān)鍵概念。

class Employee {
 ...
}

class Executive extends Employee{
 ...
}

class CEO extends Executive{
 ...
}

接口。接口是一些未實(shí)現(xiàn)的方法定義和常量的集合,相當(dāng)于一種類藍(lán)本。接口只定義了類能做什么,而不涉及實(shí)現(xiàn)的細(xì)節(jié)。本章介紹PHP5對(duì)接口的支持,并提供了一些展示這個(gè)強(qiáng)大OOP特性的例子。

<?php
interface IPillage
{
 // CONST 1;
 function emptyBankAccount();
 function burnDocuments();
}

class Employee {

}

class Excutive extends Employee implements IPillage {
 private $totalStockOptions;
 function emptyBankAccount() {
 echo "Call CFO and ask to transfer funds to Swiss bank account";
 }
 function burnDocuments() {
 echo "Torch the office suite.";
 }
}

class test {
 function testIP(IPillage $ib) {
 echo $ib->emptyBankAccount();
 }
}
$excutive = new Excutive();
$test = new test();
echo $test->testIP($excutive);
?>

抽象類。抽象類實(shí)質(zhì)上就是無(wú)法實(shí)例化的類。抽象類將由可實(shí)例化的類繼承,后者稱為具體類(concreate class)。抽象類可以完全實(shí)現(xiàn)、部分實(shí)現(xiàn)或者根本未實(shí)現(xiàn)。

abstract class Class_name
{
 //insert attribute definitions here
 //insert method definitions here
}

命名空間。命名空間可根據(jù)上下文劃分各種庫(kù)和類,幫肋你更為有效地管理代碼庫(kù)。

<?php
namespace Library;
class Clean {
 function printClean() {
 echo "Clean...";
 }
}
?>

<?php
include "test.php";
$clean = new \Library\Clean();
$clean->printClean();
?>

如果你使用過(guò)其他面向?qū)ο笳Z(yǔ)言,可能會(huì)感到奇怪,為什么上述特性沒(méi)有包括其他語(yǔ)言中熟悉的一些OOP特性?原因很簡(jiǎn)單,PHP不支持這些特性。為了讓你不再感到迷惑,下面列出PHP不支持的高級(jí)OOP特性。

  • 方法重載。PHP不支持通過(guò)函數(shù)重載實(shí)現(xiàn)多態(tài),根據(jù)Zend網(wǎng)站的討論,可能永遠(yuǎn)都不會(huì)支持。要了解具體原因,可以查看http://www.zend.com/php/ask_experts.php
  • 操作符重載。目前不支持根據(jù)所修改數(shù)據(jù)的類型為操作符賦予新的含義。根據(jù)zend網(wǎng)站的討論,將來(lái)實(shí)現(xiàn)這個(gè)特性的可能性也不大。
  • 多重繼承。PHP不支持多重繼承。但是支持實(shí)現(xiàn)多個(gè)接口。

相關(guān)文章

最新評(píng)論