学习PHP时的一些总结(二)
类中的构造方法和析构方法:
构造方法是对象创建完成后第一个被对象自动调用的方法。析构方法是对象在销毁之前最后一个被对象自动调用的方法。
如果没有显示的声明构造方法,类中都会默认存在一个没有参数列表并且内容为空的构造方法。如果显示的声明它则类中将不会存在默认的构造方法。"__construct"
在类中声明析构方法的名称也是固定的"__desctruct",析构函数不能带任何参数。
面向对象封装性的原则就要求对象以外的部分不能随意存取对象的内部数据(成员属性和成员方法)。从而有效的避免了外部错误对他的”交叉感染“,使软件错误能够局部化,大大减少查错和排错的难度。
魔术方法__set(), __get(), __isset(), __unset(),__toString(),__clone(),__call(), __sleep(),__wakeup(),[__construct, __destruct()也是魔术方法)
在PHP5.1.0以后的版本中,预定义了两个方法"__get()" ,"__set()",用来完成对所有的私有属性都能获取和赋值的操作,以及用来检查属性是否存在的方法"__isset()"和用来删除对象中私有属性的方法"__unset()"
方法的重载:
子类可以重写父类中的方法,包括构造方法和析构方法。子类中也可以调用父类中被覆盖掉的方法。如:parent::construct($name,$age,$sex);
在子类中重写的方法权限一定不能低于父类被覆盖的方法的访问权限。例如:如果父类的访问权限是protected,那么在子类中重写的方法权限就要是protected或public.
使用final标记的类不能被继承
static关键字。访问类中静态成员和方法的使用方式:
类名::静态成员属性名;
类名 ::静态成员方法名();
也可以使用关键字 "self" 来访问其他静态成员。如果在类内部的成员方法中访问其他的静态成员,通常使用self的形式去访问,最好不直接使用类名称。
const 关键字:
在PHP中定义常量是通过define()函数来完成的,但要将类中的成员属性定义为常量则只能使用const关键字,其访问方式和静态成员一样,都会通过类名在成员方法中使用self关键字访问,也不能用对象来访问。
例子:const CONST="CONST value";
__autoload()全局函数:
例子:function __autoload($className){
include("class_".ucfirst($className)."php"); //"class_"为类名的前缀
}
****对象的序列化****:
有两种情况我么必须将对象序列化:
1)对象需要在网络中传输时,将对象序列化成二进制的字符串后在网络中传输。
2)对象需要永久保存时,将对象序列化后写入文件或数据库中。
serialize()函数来序列化一个对象,传入参数为对象的引用名,返回值为一个被序列化的字符串。
反序列化函数unserialize()来将序列化后的二进制字符串再转化为对象,参数为序列化之后的字符串。
__sleep()和__wakeup()函数的使用:
抽象方法和抽象类:
只要在声明类时有一个方法是抽象的方法这个类就是抽象类,但是抽象类中可以有具体的方法。当子类继承抽象类之后,就必须把抽象类中的方法全部实现,除非子类中的方法也存在抽象方法,还是抽象类。
接口技术:
接口是一种特殊的抽象类,接口中所有的方法都是抽象的方法,所以不用在方法前面加abstract关键字了。而且在接口中也不需要显示的使用public 访问修饰符
类继承接口使用implements关键字。
学习PHP时的一些总结(二)的更多相关文章
- Java学习-039-源码 jar 包的二次开发扩展实例(源码修改)
最近在使用已有的一些 jar 包时,发现有些 jar 包中的一些方法无法满足自己的一些需求,例如返回固定的格式,字符串处理等等,因而需要对原有 jar 文件中对应的 class 文件进行二次开发扩展, ...
- Qlik Sense学习笔记之Mashup开发(二)
date: 2019-01-26 11:28:07 updated: 2019-01-26 11:28:07 Qlik Sense学习笔记之Mashup开发(二) 1.Mobile SPA UI Fr ...
- WCF学习之旅—TcpTrace工具(二十六)
止文(WCF学习之旅—TcpTrace工具(二十五))介绍了关于TcpTrance的一种使用方式,接下来介绍第二种使用方式. 三.通过ListenUri实现基于tcpTracer的消息路由 对于路由的 ...
- 学习Coding-iOS开源项目日志(二)
继续前篇:<学习Coding-iOS开源项目日志(一)>,接着本第二篇<学习Coding-iOS开源项目日志(二)>讲解Coding-iOS开源项目. 前言:作为初级程序员,想 ...
- 上四条只是我目前总结菜鸟们在学习FPGA时所最容易跑偏的地
长期以来很多新入群的菜鸟们总 是在重复的问一些非常简单但是又让新手困惑不解的问题.作为管理员经常要给这些菜鸟们普及基础知识,但是非常不幸的是很多菜鸟怀着一种浮躁的心态来学习 FPGA,总是急于求成. ...
- 浅谈学习C++时用到的【封装继承多态】三个概念
封装继承多态这三个概念不是C++特有的,而是所有OOP具有的特性. 由于C++语言支持这三个特性,所以学习C++时不可避免的要理解这些概念. 而在大部分C++教材中这些概念是作为铺垫,接下来就花大部分 ...
- python学习_数据处理编程实例(二)
在上一节python学习_数据处理编程实例(二)的基础上数据发生了变化,文件中除了学生的成绩外,新增了学生姓名和出生年月的信息,因此将要成变成:分别根据姓名输出每个学生的无重复的前三个最好成绩和出生年 ...
- Android 布局学习之——Layout(布局)具体解释二(常见布局和布局參数)
[Android布局学习系列] 1.Android 布局学习之--Layout(布局)具体解释一 2.Android 布局学习之--Layout(布局)具体解释二(常见布局和布局參数) ...
- 在学习泛型时遇到的困惑经常与func<T,U>混淆
在学习泛型时遇到的困惑经常与func<T,U>混淆,总认为最后一个值是返回类型.现在区分一下,原来问题出在泛型委托上. C#委托的介绍(delegate.Action.Func.predi ...
- 跟着刚哥学习Spring框架--Spring容器(二)
Spring容器 启动Spring容器(实例化容器) -- IOC容器读取Bean配置创建Bean实例之前,必须对它进行实例化(加载启动),这样才可以从容器中获取Bean的实例并使用. Bean是S ...
随机推荐
- Python读写Redis数据库
import redis class Database: def __init__(self): self.host = 'localhost' self.port = 6379 def write( ...
- Hard Life
poj3155:http://poj.org/problem?id=3155 题意:最大密度子图的模板题. 题解:直接看代码. /* 题意简述一个公司有n个人,给出了一些有冲突的人的对数(u,v),所 ...
- FFMPEG-数据结构解释(AVCodecContext,AVStream,AVFormatContext)
http://blog.csdn.net/yuan892173701/article/details/8702333 AVCodecContext 这是一个描述编解码器上下文的数据结构,包含了众多编 ...
- USB做Host的OTG原理
在介绍USBOTG的基础上,着重介绍Maxim公司的MAX3301E型USBOTG电路的特点.内部结构和工作原理. 1 引言 随着USB2.0版本的发布,USB越来越流行,已经成为一种标准接口.现在, ...
- delphi非IE内核浏览器控件TEmbeddedChrome下载|TEmbeddedChrome代码
下载地址: 点击下载 代码示例: 在TForm的oncreate方法中写入一些代码 procedure TForm1.FormCreate(Sender: TObject); begin Chromi ...
- dump datafile block
Oracle dump datafile block有两种方式: 然后根据block id执行dump 命令: SQL> alter system dump datafile 4 block 2 ...
- hadoop多机安装HA+YARN
HA 相比于Hadoop1.0,Hadoop 2.0中的HDFS增加了两个重大特性,HA(热备)和Federation(联邦).HA即为High Availability,用于解决NameNode单点 ...
- VirtualBox的四种网络连接方式详解
VirtualBox中有4中网络连接方式: 1. NAT 2. Bridged Adapter 3. Internal 4. Host-only Adapter VMWare中有三种,其实他跟VMWa ...
- FFT小结
先上模板 #include<cstdio> #include<cmath> <<)*+; typedef long long ll; ll power(ll t,; ...
- ELK安装配置及nginx日志分析
一.ELK简介1.组成ELK是Elasticsearch.Logstash.Kibana三个开源软件的组合.在实时数据检索和分析场合,三者通常是配合使用,而且又都先后归于 Elastic.co 公司名 ...