美文网首页
十一:PHP面向对象

十一:PHP面向对象

作者: White夏天baby | 来源:发表于2020-10-04 09:47 被阅读0次

PHP类权限控制修饰符,成员访问权限

public       可在类的内部、外部、子类中使用

protected  可在类的内部、子类中使用,可被子类继承

private      只可在类的内部使用,不可被子类继承

单一继承

PHP的类继承是单一继承方式,即只能继承一个类,若有接口的,可以继承一个类、一个接口。

方法重写

子类继承父类,子类中的方法名与父类中的方法名相同时,子类中的方法体会覆盖掉父类中的方法。若想要保留父类中的方法体,并在原有的基础上扩展,可使用parent关键字进行调用

抽象类的定义

关键字    abstract   定义

若类中有抽象方法,类必须定义成一个抽象类。类中没有抽象方法,类也可以定义成抽象方法。抽象方法中抽象类在继承的子类中必须被定义,且子类定义的方法访问控制权限>=父类控制权限

接口的定义

关键字   interface   定义

接口中的方法都是抽象的,方法没有方法体。方法必须时公有,类中必须实现接口中的所有方法

魔术方法

__construct():构造函数   方法名与类名相同,也是构造方法

在创建一个对象时,就会调用此方法,适合在使用对象之前初始化操作

__destruct():   析构函数    某个对象的所有引用都被删除或者当对象被显式销毁时执行

方法重载

__call():  在对象中调用一个不可访问方法时,__call()会被调用。

__callStatic():  在静态上下文中调用一个不可访问方法时,__callStatic()会被调用。

调用了不可访问的方法,会调用__call、__callStatic  $name,是不可访问的方名,$arguments是参数数组

属性重载

__get():   读取不可访问属性的值时,__get()会被调用。

__set():     读取不可访问属性的值时,__get()会被调用。

__isset():   当对不可访问属性调用isset()empty()时,__isset()会被调用

__unset():  当对不可访问属性调用isset()empty()时,__isset()会被调用

__sleep():    此功能可以用于清理对象   属性值被抛弃

__wakeup():   预先准备对象需要的资源

__toString():    用于一个类被当成字符串时应怎样回应

对象$class被当成字符串输出

__clone():   clone一个对象时调用的方法

设计模式

工厂模式,不需要在文件中多次实例化一个类,而是直接在工厂类中实例化一个类,然后返回这个对象

单例模式,一个类只允许实例化一次,通常情况下,还是在类的内部创建自己。把构造函数的权限设置为private,可实现单例模式。使用场景:连接数据库,在程序执行过程中,没有必要多次连接数据库,这是对资源的浪费。

在类的外部不能创建单例模式的类

注册树模式,将实例化的对象注册到注册树上,在全局可以直接使用

适配器模式,

无论时那一种类,封装的方法名称都相同,这就是适配器模式

观察者模式
当一个对象状态发生改变时,依赖它的对象全部接收到通知,并自动更新

场景:一个事件发生后,要执行一连串操作。传统的编成方式是在事件的代码之后,直接加入逻辑。当更新逻辑增多之后,代码也变得难以维护。这种方式是耦合的,侵入式的,增加新的逻辑需要修改事件主体代码。

观察者模式实现了低耦合,非侵入式的通知与更新机制

策略模式

将特定的行为和算法封装成一个类,以适应某些特定的上下文环境。这种模式就是策略模式。

例如:点上针对男性女性用户,广告为的广告不同,跳转的类目也要不同

可实现Ioc  依赖倒置,控制反转

page类中的index方法原本依赖FeMaleUser类或MaleUser类,但是因为策略模式,现在不依赖于任何类。实现了低耦合,高维护的特性

相关文章

  • 十一:PHP面向对象

    PHP类权限控制修饰符,成员访问权限 public 可在类的内部、外部、子类中使用 protected 可在类的内...

  • 2019-07-28

    在PHP语言的使用中,可以分别使用面向过程和面向对象, 而且可以将PHP面向过程和面向对象两者一起混用。

  • PHP 面向对象 (十一)反射类

  • 2019-07-18

    在PHP语言的使用中,可以分别使用面向过程和面向对象, 而且可以将PHP面向过程和面向对象两者一起混用,这是其它很...

  • 类的声明和语法

    1.达标和检测 学习PHP的面向对象,你需要具备PHP面向过程的相关基础,如不会,请先学习PHP基础部分. 面向对...

  • PHP技术梳理

    PHP语言: PHP基础, 数据类型, 导入文件 string array 面向对象技术, 类, 对象, 继...

  • php 面向对象

    给自己看的 简介 PHP 对待对象的方式与引用 (references) 和句柄 (handles) 相同,即每个...

  • php面向对象

    面向对象在很多语言,如c,java,c++,c#等语言中都有,它与面向过程的区别在于:面向过程实现功能时使用几十个...

  • php面向对象

    一、类 类是一种具有统一的特征和行为的声明特征:是属性行为:方法或者函数 属性有三个标识,1、public:公共的...

  • PHP面向对象

    1 写出 php 的 public、protected、private 三种访问控制模式的区别(新浪网技术部) ...

网友评论

      本文标题:十一:PHP面向对象

      本文链接:https://www.haomeiwen.com/subject/qvbduktx.html