php 三大特点:封装,继承,多态

 更新时间:2017年7月6日 23:49  点击:2288
小编给大家推荐的这篇文章介绍了php 三大特点:封装,继承,多态,非常实用,有兴趣的同学快看看吧。

一.封装

目的:让类更安全

做法:成员变量变为私有的,通过方法间接操作成员变量,在方法里面加限制条件

二.继承

概念:子类可以继承父类的一切

方法重写:在子类里面对父类进行方法重写

特点:单继承:一个子类可以有多个父类,一个父类可以派生出多个子类

override:方法重写

overload:重载,编辑多态

三.多态(运行多态)

概念:父类引用子类实例,由于子类里面对父类的方法进行重写,父类引用在调用该方法的时候表现出的不同状态

条件:

1必须发生在集成下

2必须重写父类方法

3父类引用调用方法

如果一个方法需要一个父类参数,可以给一个子类对象

静态

普通成员

普通成员是属于对象的

静态成员

静态成员属于类的

关键字:static

self关键字:在类里面代表该类

在静态方法里面不能调用普通成员

在普通方法里面能够调用静态成员

接口

极度抽象的类

接口里面不能包含成员变量,只能包含成员方法

成员方法可以没有函数体

接口关键字:interface

实现接口的类,必须实现接口里面的所有方法

加载类:

 

 代码如下复制代码

include("./Ren.class.php");

include"./Ren.class.php";

require("./Ren.class.php");

require"./Ren.class.php";

require_once("./Ren.class.php");

require_once"./Ren.class.php";

 

自动加载类的方法

所有的类文件要放在同一个目录下

所有类文件的命名规则一致

小编推荐的这篇文章介绍了php基于ob_start(ob_gzhandler)实现网页压缩功能的方法,非常实用,有兴趣的同学可以看看。

PHP生成网页后传送给浏览器显示 ,页面的打开速度除了与用户的网速有关,往往也跟页面的大小有很关系,我们可以从网 页大小着手,以提高网页的响应速度。

下面的代码是一个压缩网页的例子,我们利用ob_gzip函数,使用ob_start将输出内容压缩后放到“缓冲区”后再输出 。

PHP代码

 

 代码如下复制代码

//启用压缩

if(function_exists('ob_gzip'))

{

 ob_start('ob_gzip');

}

//准备一些待压缩的内容

for($i=0;$i<100;$i++)

{

 echo('这里是测试内容
');

}

//输出压缩成果

ob_end_flush();

//这是ob_gzip压缩函数

functionob_gzip ($content)

{

 if( !headers_sent() &&extension_loaded("zlib") &&strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip")){

 $content= gzencode($content,9);

 header ("Content- Encoding: gzip");

 header ("Vary: Accept- Encoding");

 header ("Content- Length: ".strlen($content));

 }

 return($content) ;

}

 

到底作用有 多大,在这里我就上面的代码进行了测试。

压缩前:

压缩后:

[!--infotagslink--]

相关文章

  • 基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能

    这篇文章主要介绍了基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23
  • 图文介绍c#封装方法

    在本篇内容里小编给大家分享的是关于c#使用封装方法以及相关知识点,对此有需要的朋友们可以学习下。...2020-06-25
  • vue+element-ui表格封装tag标签使用插槽

    这篇文章主要介绍了vue+element-ui表格封装tag标签使用插槽,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-19
  • 原生JS封装Ajax插件(同域、jsonp跨域)

    这篇文章主要为大家详细介绍了原生JS封装Ajax插件,为大家介绍不同域之间互相请求资源的跨域...2016-05-05
  • 封装 axios+promise通用请求函数操作

    这篇文章主要介绍了封装 axios+promise通用请求函数操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-12
  • Mybatis返回结果封装map过程解析

    这篇文章主要介绍了Mybatis返回结果封装map过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-19
  • Vue封装全局过滤器Filters的步骤

    这篇文章主要介绍了Vue封装全局过滤器Filters的步骤,通过封装vue全局过滤器实现filters的统一管理。感兴趣的朋友可以了解下...2020-09-16
  • 深入分析c# 继承

    这篇文章主要介绍了c# 继承的相关资料,文中讲解的非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-11-03
  • php构造方法中析构方法在继承中的表现

    这篇文章主要为大家详细介绍了php构造方法中析构方法在继承中的表现,感兴趣的小伙伴们可以参考一下...2016-04-15
  • vue 将多个过滤器封装到一个文件中的代码详解

    这篇文章主要介绍了vue 将多个过滤器封装到一个文件中实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2020-09-05
  • 如何通过Proxy实现JSBridge模块化封装

    这篇文章主要介绍了如何通过Proxy实现JSBridge模块化封装,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-10-23
  • javascript中的3种继承实现方法

    这篇文章主要介绍了javascript中的3种继承实现方法,包括使用Object.create实现类式继承、使用utilities工具包自带的util.inherites、使用extends关键字,非常的实用,希望对大家了解javascript继承能够有所帮助...2016-01-30
  • C#使用虚拟方法实现多态

    这篇文章主要介绍了C#使用虚拟方法实现多态,涉及C#多态的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 原生Javascript实现继承方式及其优缺点详解

    JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一,那么这篇文章主要给大家介绍了关于原生Javascript实现继承方式及其优缺点的相关资料,需要的朋友可以参考下...2021-07-21
  • 理解js对象继承的N种模式

    这篇文章主要为大家举例介绍了js对象继承的几种模式,内容很全面,感兴趣的小伙伴们可以参考一下...2016-01-26
  • js继承的6种方式详解

    这篇文章主要给大家介绍了关于js继承的6种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-06
  • Vue封装全局toast组件的完整实例

    组件(Component)是 Vue.js 最强大的功能之一,组件可以扩展 HTML 元素,封装可重用的代码,这篇文章主要给大家介绍了关于Vue封装全局toast组件,需要的朋友可以参考下...2021-07-13
  • 利用unity代码C#封装为dll的步骤分享

    这篇文章主要给大家介绍了关于利用unity代码C#封装为dll的相关资料,文中通过图文将实现的方法介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • vue 封装面包屑组件教程

    这篇文章主要介绍了vue 封装面包屑组件教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-16
  • 简单理解JavaScript中的封装与继承特性

    这篇文章主要介绍了JavaScript中的封装与继承特性,封装与继承是基于对象编程概念中的基本特性,需要的朋友可以参考下...2016-03-22