1、声明:class 类名{

//成员属性(变量) 修饰符 $变量名=初值;

//成员方法(函数) 修饰符 function 函数名(){ 执行;}

}

2、生成类对象:$对象名=new 类名();//也可以不加括号

3、访问类成员:$对象名->成员名;//成员为成员属性时不加 $

4、类的内部访问: $this->成员名;//不可直接用成员名,this表示当前类,self表示类名

5、修饰符:private私有的,不可使用对象直接访问,只能本类内部访问

protected保护的,只能本类和本子类内部使用

public公有的,默认,类内外部均可用

final 最终的,修饰类时不可被继承,修饰的方法不可被覆盖,不修饰成员变量

static 静态的,共用类成员,访问时不可用对象访问,类名::静态成员

const 类常量,只能修饰类变量,声明赋初值,不可改值,访问:类名::类常量名

6、构造方法: function  __construct(形参){执行;}   //对象创建时第一个自动调用的方法

//也可为方法名和类名相同的方法; 两个同时存在时系统调用__construct()

//构造方法有形参时创建对象时不传递会有警告

7、析构方法:function  __destruct(){执行;}    //对象消亡时最后一个自动调用方法

8、变量名调用类变量,可变变量法:

9、魔术方法:

成员变量为私有的(private),使用 $对象名->成员变量名 时自动调用如下函数:

function __get($属性名){  }//属性名字,使用也是与可变变量相同;

function __set($属性名,$属性值){  }//在外设置私有变量时自动调用

function __isset($属性名){ return false…;}//在外使用isset函数判断私有变量时自动调用

function __unset($属性名){   }//在外使用unset函数删除私有变量时自动调用

function __toString(){return “输出值”}//必须返回字符串值,echo $对象名;时自动调用

function __call($函数名,$实参数组名){ }//对象所调用函数不存在时自动进入

static function __callstatic($函数名,$实参数组名){ }//5.3版本,类调用静态函数不存在时自动进入

function __invoke($形参){ };//5.3版本,在对象名(“实参”);时自动调用

10、魔术变量:

1)      __CLASS__当前类名

2)      __METHOD__当前类方法

11、克隆对象:

对象引用:$新对象名=$原对象名;//并为参数新对象,只是指针指向同一处

克隆:$新对象= clone $原对象;//正真的两个对象

自动调用函数:function __clone(){ $this->新对象成员;}//可初始化新对象

12、继承:class 子类名 extends 父类名{  }//访问时直接子类对象调用

private成员不可被子类内外使用,私有不继承

成员名相同则覆盖,子类优先,子类内部使用parent::成员名;调用父类成员

覆盖时权限只能大于或等于原权限

继承要调用父类构造方法:子类构造方法第一行写parent::__construct(实参);

13、判断变量是否属于某类:$对象名 instanceof 类名;//返回bool

14、类的序列化(串行):$序列化字符串名=serialize($原对象名);//对象转字符串,字符串包含所有

function __sleep(){return array(成员变量,成员变量);}//自动调用,返回需串行化变量

15、类的反序列化:$新对象名= unserialize (“序列化字符串”);//字符串转对象

function __wakeup(){}//自动调用,可初始化类变量

16、抽象类:修饰符为abstract,不一定要有抽象方法

17、抽象方法:声明一个方法没有方法体//没有大括号{ },修饰符为abstract,一定在抽象类里

18、抽象类的继承:子类必须全部实现父类的全部抽象方法,否则不可创建对象

19、接口:interface 接口名{ }//方法必须全是抽象方法,成员属性必须全是const量,权限必须是public

20、接口的继承:接口继承接口,是对父接口的扩展新方法和新属性

21、接口的实现:class类名 implements 接口1,接口2{  }

22、解析字符串代码:$字符串1="echo 'ttt';";eval($字符串1);//执行输出ttt

【PHP篇】面向对象基础的更多相关文章

  1. 【Python之路】第七篇--Python基础之面向对象及相关

    面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance(obj, cls) 检查obj是否是类 cls 的对象 class Foo(objec ...

  2. 十六、python面向对象基础篇

    面向对象基础: 在了解面向对象之前,先了解下变成范式: 编程范式是一类典型的编程风格,是一种方法学 编程范式决定了程序员对程序执行的看法 oop中,程序是一系列对象的相互作用 python支持多种编程 ...

  3. swift开发多线程篇 - 多线程基础

    swift开发多线程篇 - 多线程基础 iOS 的三种多线程技术 (1)NSThread  使用NSThread对象建立一个线程非常方便 但是!要使用NSThread管理多个线程非常困难,不推荐使用 ...

  4. 【重走Android之路】【Java面向对象基础(三)】面向对象思想

    [重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想   1 面向对象的WWH   1.1 What--什么是面向对象         首先,要理解“对象”.在Thinkin ...

  5. 【重走Android之路】【Java面向对象基础(二)】细说String、StringBuffer和StringBuilder

    [重走Android之路][基础篇(二)][Java面向对象基础]细说String.StringBuffer和StringBuilder   1.String String是Java中的一个final ...

  6. 【重走Android之路】【Java面向对象基础(一)】数据类型与运算符

    [重走Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符   1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数 ...

  7. 附录A培训实习生-面向对象基础方法重载(3)

    就上一篇代码而言,你如果写Cat cat = new Cat();会直接报错错误 : 1       “Cat”方法没有采用“0”个参数的重载 E:\大话设计模式学习\BigDesignPattern ...

  8. 前端第三篇---前端基础之JavaScript

    前端第三篇---前端基础之JavaScript 一.JavaScript概述 二.JavaScript的基础 三.词法分析 四.JavaScript的内置对象和方法 五.BOM对象 六.DOM对象 七 ...

  9. Membership三步曲之入门篇 - Membership基础示例

    Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 -  Membership基础示例 Membership三步曲之进阶篇 -  深入剖析Pro ...

  10. 了解JavaScript 面向对象基础 & 原型与对象

    面向对象语言中的对象 老是能听到什么基于对象, 面向对象. 什么是对象, 如果有面向对象基础的人可以无视了, 下面举个简单的例子给大家讲讲面向对象中, 对象的定义, 这个是比较通用的, 不过对于JS来 ...

随机推荐

  1. 201621123002《JAVA程序设计》第十四周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 2. 使用数据库技术改造你的系统 2.1 简述如何使用数据库技术改造你的系统.要建立什么表?截图你的表设计. 用 ...

  2. Biopython 安装使用

    Biopython 官网:https://biopython.org/ 安装 Biopython  https://biopython.org/wiki/Download 可以使用 pip 进行安装, ...

  3. MySQL ERROR 1064(42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

    通常出现该错误的原因是使用了 MySQL 的保留字 解决方法是对使用的保留字使用反引号  (Tab键上面)

  4. hbase_存储模型

    Hbase 是按列存储,所以每个列族存储在一个HDFS文件上. Hbase表中的行是按照rowkey字典序进行排列的,并且表格在行的方向上被分割为多个region(按照行进行分割的) region 是 ...

  5. 图解Golang的GC算法

    虽然Golang的GC自打一开始,就被人所诟病,但是经过这么多年的发展,Golang的GC已经改善了非常多,变得非常优秀了. 以下是Golang GC算法的里程碑: v1.1 STW v1.3 Mar ...

  6. Idea增加Idiff merger工具

    File -- setting --- tolls -- diff & merge 选择使用外部diff工具和外部merge工具,选择winmerge工具目录. 就可以再version con ...

  7. MySQL语法大全_自己整理的学习笔记(MySQL语句 整理二)

    select * from emp; #注释 #--------------------------- #----命令行连接MySql--------- #启动mysql服务器 net start m ...

  8. tensorflow学习之(七)使用tensorboard 展示神经网络的graph/histogram/scalar

    # 创建神经网络, 使用tensorboard 展示graph/histogram/scalar import tensorflow as tf import numpy as np import m ...

  9. Acoustic modelling from the signal domain using CNNs

    3. Neural network architecture 此处描述了在本文当中所使用的网络结构,和所提取的关键特征(key features).首先,描述了两个新型的网络结构:the networ ...

  10. arm linux和windows 使用tftp传文件

    一.在windows 安装tftp客户端 链接:https://pan.baidu.com/s/1sxNciX337DObVmGJmCxICw 提取码:hzvj 在客户端新建一个tftp文件夹 二.关 ...