手机
当前位置:查字典教程网 >编程开发 >php教程 >PHP 面向对象实现代码
PHP 面向对象实现代码
摘要:1,简单的对象创建复制代码代码如下://类的作用域final:将阻止子类重写这个字段//方法的作用域abstract:在父类中声明,在子类中...

1,简单的对象创建

复制代码 代码如下:

//类的作用域final:将阻止子类重写这个字段

//方法的作用域abstract: 在父类中声明,在子类中实现

//定义类:

class Employee{

//定义字段

private $name;

protected $title;

public $wage;

//常量

const PI = 3.1415926;

//静态成员变量

private static $visitors = 0;

//定义构造函数

function __construct(){

//使用静态成员变量

self::$visitors++;

echo "constructor";

}

//定义析构函数

function __destruct(){

echo "destruct";

}

//声明方法

public function clockIn(){

//使用字段

echo "Member $this->name";

}

//在访问一个对象并不拥有的属性时(比如私有字段),如果该对象用户__get和__set方法,则会自动调用__get方法或__set方法

function __set($property,$value){

$this->$property = $value;

}

function __get($property){

return $this->$property;

}

}

//类的继承 Manager继承Employee

class Manager extends Employee {

function __construct(){

//调用父类的构造函数或方法

parent::__construct();

parent::clockIn();

echo "Manager constructor";

}

}

//创建对象

$employee = new Employee();

$employee->wage = 10000;

//使用常量

echo Employee::PI;

//调用方法

$employee->clockIn();

$manager = new Employee();

//instanceof判断一个对象是类的实例、类的子类,还是实现了某个特定接口

if($manager instanceof Employee ) echo "Yes";

2,高级OO特性

(1)对象克隆

复制代码 代码如下:

//对象克隆

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)接口

复制代码 代码如下:

//接口

interface IPillage{

function method();

}

class ClassC extends ClassA implements IPillage {

function method(){

echo "inteface method";

}

}

$classC = new ClassC();

$classC->method();

//inteface method

(3)抽象类

复制代码 代码如下:

//抽象类,是不能实例化的类,只能作为其它类继承的基类

abstract class BaseClass{

protected $name;

abstract function method();

}

class ChileClass extends BaseClass {

function method(){

echo "method";

}

}

$child = new ChileClass();

$child->method();

//output method

注:

如果要创建一个模型,这个模型将由一些紧密相关的对象采用,就可以使用抽象类。如果要创建由一些不相关对象采用的功能,就使用接口。

如果必须从多个来源继承行为,就使用接口。php可以继承多个接口,但不能扩展多个抽象类。

如果知道所有类都会共享一个公共的行为实现,就使用抽象类,并在其中实现该行为。在接口中无法实现行为。

【PHP 面向对象实现代码】相关文章:

PHP动态图像的创建

PHP5对象体系

PHP邮件专题

如何在HTML中嵌入PHP 代码

PHP数据库操作面向对象的优点

PHP面向对象之后期静态绑定功能介绍

PHP_Flame(Version:Progress)的原代码

PHP自动生成月历代码

MVC模式的PHP实现

PHP Opcache安装和配置方法介绍

精品推荐
分类导航