• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP 面向对象实现代码_php技巧

php 搞代码 4年前 (2022-01-26) 17次浏览 已收录 0个评论

1,简单的对象创建

 <BR>//类的作用域final:将阻止子类重写这个字段 <BR>//方法的作用域abstract: 在父类中声明,在子类中实现 <BR>//定义类: <BR>class Employee{ <BR>//定义字段 <BR>private $name; <BR>protected $title; <BR>public $wage; <BR>//常量 <BR>const PI = 3.1415926; <BR>//静态成员变量 <BR>private static $visitors = 0; <BR>//定义构造函数 <BR>function __construct(){ <BR>//使用静态成员变量 <BR>self::$visitors++; <BR>echo "constructor"; <BR>} <BR>//定义析构函数 <BR>function __destruct(){ <BR>echo "destruct"; <BR>} <BR>//声明方法 <BR>public function clockIn(){ <BR>//使用字段 <BR>echo "Member $this->name"; <BR>} <BR>//在访问一个对象并不拥有的属性时(比如私有字段),如果该对象用户__get和__set方法,则会自动调用__get方法或__set方法 <BR>function __set($property,$value){ <BR>$this->$property = $value; <BR>} <BR>function __get($property){ <BR>return $this->$property; <BR>} <BR>} <BR>//类的继承 Manager继承Employee <BR>class Manager extends Employee { <BR>function __construct(){ <BR>//调用父类的构造函数或方法 <BR>parent::__construct(); <BR>parent::clockIn(); <BR>echo "Manager constructor"; <BR>} <BR>} <BR>//创建对象 <BR>$employee = new Employee(); <BR>$employee->wage = 10000; <BR>//使用常量 <BR>echo Employee::PI; <BR>//调用方法 <BR>$employee->clockIn(); <BR>$manager = new Employee(); <BR>//instanceof判断一个对象是类的实例、类的子类,还是实现了某个特定接口 <BR>if($manager instanceof Employee ) echo "Yes"; <BR>


2,高级OO特性
(1)对象克隆

 <BR>//对象克隆 <BR>class ClassA{ <BR>private $name; <BR>private $title; <BR>public function setName($name){ <BR>$this->name = $name; <BR>} <BR>function getName(){ <BR>return $this->name; <BR>} <BR>public function setTitle($title){ <BR>$this->title = $title; <BR>} <BR>public function getTitle(){ <BR>return $this->title; <BR>} <BR>function __clone(){ <BR>echo "我被克隆了","<br>"; <BR>} <BR>} <BR>$classA = new ClassA(); <BR>$classA->setName("NameA"); <BR>$classA->setTitle("TitleA"); <BR>$classB = clone $classA; <BR>$classB->setName("NameB"); <BR>echo $classA->getName(),"<br>",$classA->getTitle(),"<br>"; <BR>echo $classB->getName(),"<br>",$classB->getTitle(),"<br>"; <BR>/* output <BR>我被克隆了 <BR>NameA <BR>TitleA <BR>NameB <BR>TitleA <BR>*/ <BR>


(2)接口

 <BR>//接口 <BR>interface IPillage{ <BR>function method(); <BR>} <BR>class ClassC extends ClassA implements IPillage { <BR>function method(){ <BR>echo "inteface method"; <BR>} <BR>} <BR>$classC = new ClassC(); <BR>$classC->method(); <BR>//inteface method <BR>


(3)抽象类

 <BR>//抽象类,是不能实例化的类,只能作为其它类继承的基类 <BR>abstract class BaseClass{ <BR>protected $name; <BR>abstract function method(); <BR>} <BR>class Chil<mark>6来源gaodaimacom搞#^代%!码网</mark><strong>搞gaodaima代码</strong>eClass extends BaseClass { <BR>function method(){ <BR>echo "method"; <BR>} <BR>} <BR>$child = new ChileClass(); <BR>$child->method(); <BR>//output method <BR>


注:
如果要创建一个模型,这个模型将由一些紧密相关的对象采用,就可以使用抽象类。如果要创建由一些不相关对象采用的功能,就使用接口。
如果必须从多个来源继承行为,就使用接口。php可以继承多个接口,但不能扩展多个抽象类。
如果知道所有类都会共享一个公共的行为实现,就使用抽象类,并在其中实现该行为。在接口中无法实现行为。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 面向对象实现代码_php技巧
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址