PHP面向对象
Posted qq1694188561
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP面向对象相关的知识,希望对你有一定的参考价值。
php面向对象
面向对象是一种程序设计模式,简称OOP。
创建:
类: 通过关键字class来定义类 类名首字母要大写。
对象: 是类的实例 通过new关键字 得到一个实例对象 new className。
访问控制
对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的。
Public:添加的成员是公有的,在类内 类外 子类 都可以去访问他
Protectd:受保护的,只能在类的里面,和子类可以访问,类的外面不能访问
Private:私有的 只能在累的里面可以访问。
如果成员前面没有加修饰符 默认是public
面向对象的三大特征:
1.封装
将数据和操作数据的方法捆绑在一起,对外隐藏,只提供可以操作的接口
2.继承
继承父类的方法和属性
3.多态
php是弱类型语言 没有多态这个概念 有重载
多态是强类型语言才有的
重载:是子类和父类的方法名相同子类会覆盖掉父类的方法
析构函数:
析构函数在对象被销毁释放之前自动调用
析构函数不能带有任何的参数
继承:
使用extends关键字,使子类继承父类。
子类继承父类的方法实行子类都可以继承
Public 修饰的属性和方法 子类都可以继承
Protcted 修饰的属性和方法 子类都可以继承
private修饰的属性子类可以继承 private修饰的方法子类不可以继承
静态属性static:
可以修饰属性和方法,静态属性和静态方法,也叫类属性,类方法。
静态属性,静态方法,只能使用类名直接调用。
使用"类名::$静态属性" , "类名::静态方法()"。
静态方法中不能使用$this 关键字 $this是实例对象,而对象不能访问静态成员
$self指向类本身
类里面想操作静态成员 需要使用关键字self
const关键字:
在类中声明常量,不能是define()函数!必须使用const关键字。
与define()声明相似,const关键字声明常量不能带$,必须全部大写!
常量一旦声明,不能改变。调用时与static一样,使用类名调用Person::常量。
克隆:
php中通过关键字克隆 clone 克隆一个对象
通过关键字clone对象的时候 其实是调用类中的隐藏函数 function_clone()
如果不让类生成的实例对象被克隆 在隐藏函数function_clone前面修改访问修饰符为protected就可以了。
以上是关于PHP面向对象的主要内容,如果未能解决你的问题,请参考以下文章