类中成员分为3大类:属性:方法:常量:
详细一点,就又分为:
属性:
普通属性;//一般属性,实例属性
静态属性;
方法:
普通方法;//一般方法,实例方法
静态方法;
构造方法;
析构方法;
常量:
类常量,在类中定义一个常量就称为类常量,本质还是常量
定义形式:class 类名{ const 常量名=常量值; //不可以使用define()来定义!}
使用形式: 常量的使用,是通过类名,并使用范围解析符(::)来取用的; 类名::常量名;
普通属性(实例属性)
实例也叫对象,使用形式$对象->属性名;
静态属性
一个类中的一个静态属性,就只有“一份数据”;但:一个类中的一个实例属性,就可以有“多份数据”——每创建一个对象出来,就会有一份数据;
使用: 使用类名和范围解析符(::)来对静态属性进行操作:
类名::$静态属性名;//注意:属性名带$符号
对比1:常量的使用:类名::常量名;
对比2:实例属性的使用:对象名->实例属性名; //注意:属性名不带$符号
实例属性,是每个对象都可以不一样的数据,也是每个对象都“独自拥有”的数据;
静态属性,他不属于任何一个对象,而只属于该类本身,也可以理解为为所有对象所共有的数据
普通方法(实例方法)
调用形式:$对象名->方法名(实参1,实参2,....);
静态方法
调用形式: 类名::方法名(实参1,实参2,....);
类常量
定义类常量的时候,前面不能有任何的访问控制修饰符,也不受访问控制的限制!只要能找到类,就能访问该类常量!![Image](https://box.kancloud.cn/cbf723abf44caab80c29baf8c901038c_269x50.png)
析构方法
\_\_destruct();对象被“销毁”的时候会自动被调用的方法——我们无法调用它.不能带参数(形参),但方法中也可以使用$this这个词,代表”当前对象”;
对象在哪些情况不会被销毁
1,如果程序结束,所有变量都会被销毁,自然,变量所代表的对象也会被销毁;
对象销毁的顺序,默认情况下,跟其创建的顺序相反; $o1=new c(‘a’); $o2=new c(‘b’); $o3new c(‘c’); var\_dump($o1,o2,o3); //c被销毁 b被销毁 a被销毁
2,当一个对象没有任何变量“指向”它的时候,即使程序还没有结束,也会被销毁
$o1=new c(‘a’); $o1=$o2; unset($o1); //$o2没有被销毁,如下图
![Image](https://box.kancloud.cn/b6023f2f39a2114aa0aca8cca92abead_699x194.png)
如果$o1=new c(‘a’); $o1=&$o2; unset($o1); //$o2没有被销毁,如下图
![Image](https://box.kancloud.cn/3fd5a5c80d675339e0101a95b0d39c99_763x151.png)
最后一个情况:$o4=new c1(‘d’); $o41=&$o4; $o4=44 unset($o4); //这2个对象被销毁吗?见下图:会都被销毁
开始,其原理为:
![Image](https://box.kancloud.cn/3a229cf9bc8b24d75cc224445b6b3d44_759x149.png)
赋值之后($o4 = 44),其结果及原理为:
![Image](https://box.kancloud.cn/6557d174c1143d439b791141ca66725c_712x138.png)
parent关键字
代表父类, 本质上就是代表父类这个“类”,而不是父类的“对象”;
使用: parent::属性或方法;//通常是静态属性或静态方法,但有时候可能是实例属性或实例方法;![Image](https://box.kancloud.cn/5bd156e1b184bdac924bfb9c5f57487d_502x233.png)
对比相关的词:
关键字
含义
使用位置:
使用示例
parent:
代表父类(这个类)
肯定在一个方法中
parent::属性或方法;
self:
代表当前其所在的类
肯定在一个方法中
self::静态属性或方法;
$this:
代表调用当前方法的对象
肯定在一个方法中
$this->实例属性或方法;
- PHP
- 页面跳转
- 数据类型和运算符
- 整形
- 浮点型
- 字符串型
- 布尔型
- 判断数据类型
- 传值
- 类型转换
- 常量
- 进制转换
- 运算符
- 各种结构
- 数组
- 分类
- 创建
- 多维数组
- 数组操作函数
- 数组指针
- 排序
- 数组交换需要注意的
- 函数
- 创建函数
- 参数传递
- 参数数量问题
- 返回值
- 可变函数
- 匿名函数
- 冒泡,选择,二分
- 变量的作用域
- 局部作用域中使用全局
- use
- 有关函数的系统函数
- 递归
- 递推(迭代)
- 面向对象
- 类和对象
- 值传递
- 引用传递
- 成员
- 构造和析构调用上级同类方法
- 重写
- 最终类
- 最终方法
- 设计模式
- 抽象类
- 抽象方法
- 抽象类和抽象方法的细节
- 重载
- 接口
- 类和接口的总结
- 自动加载
- 克隆
- 对象的遍历
- 内置标准类
- 其他类型转对象类型
- 类型约束
- 魔术方法
- static关键字
- 命名空间
- 子级空间
- 引入机制
- 公共空间
- 使用注意
- 错误处理
- 错误的触发
- 错误报告的显示
- 错误日志的记录问题
- 自定义错误处理器
- 异常抛出
- 文件锁
- 文件处理
- 序列化与反序列化
- 目录操作
- 文件操作
- 文件上传
- $_FILFS
- 多文件上传处理
- 绘图技术
- 创建画布资源
- 操作画布
- 导出
- 销毁资源
- 验证码
- 补充文件居中
- 在图像上写入一行TTF字体的文本
- 获得图像相关信息
- 水印
- 等比例缩放
- 常见错误
- HTTP协议
- URL的构成
- 请求
- 防盗链
- 响应
- 使用header()禁用缓存
- 下载文件的HTTP响应头
- 文件下载
- HTTPS
- 会话技术
- cookie
- session
- PHP操作MySQL函数
- 登录
- 一些函数
- 从结果集中取出一行数据
- 获取行数,列数,字段名
- 安全
- 缓存
- 补充
- MySQL
- 语法
- 备份和恢复
- 注释
- 语句行
- 字符集
- 校验级
- 存储引擎
- 数据库操作
- 创建数据库
- 删除数据库
- 显示数据库
- 修改数据库
- 数据类型
- 整数类型
- 小数类型
- 日期时间型
- 字符和文本型
- enum类型
- set类型
- 时间类型
- 表操作
- 创建
- 索引
- 约束
- 表选项列表
- 表的其他语句
- 视图语法
- 增删改查
- 插入数据(增)
- 删除数据(删)
- 修改数据(改)
- 查询(查)
- 用户和权限管理
- 用户管理
- 权限管理
- PDO
- 与PDO相关的几个类
- 连接数据库
- 使用
- PDO的错误处理
- PDO结果集对象
- pdo结果集对象的常用方法
- PDO预处理
- 常用属性
- mysql编程
- 事务
- 语句块
- mysql中的变量
- (存储)函数
- 存储过程procedure
- 触发器(trigger)
- mysql优化
- 存储引擎
- 字段类型
- 逆范式
- 索引
- Memcache
- 与redis区别
- 安装
- php开启扩展
- php操作memcache
- Key的命名
- 有效期
- 各种数据类型存储
- 删除
- 第三个参数压缩作用
- 其他相关操作方法
- 终端命令操作方式
- 获取memcache统计信息
- Git
- 创建一个git仓库
- 添加
- 修改文件
- 删除文件
- 克隆
- 个人网站
- Ajax
- 发起请求
- 接受响应
- 常用属性和方法
- get和post
- get
- post
- 同步和异步
- 什么时候使用同步请求?
- 分页
- xml的接收和处理
- JSON
- 无刷新表单提交和进度条
- JQuery操作ajax
- iframe
- 邮件
- 介绍
- 发送邮件
- 直投邮件
- 中转邮件发送
- phpmailer
- 正则表达
- 简单使用
- preg_match()
- 正则内容
- 定义字符集
- 特别字符集
- 组合字符集
- 限制字符
- 模式修正符
- 进行全局匹配