PHP面向对象概念


Posted in PHP onNovember 06, 2011

关键字和特殊变量

new,class,extends。这三个,大家都懂得。
::,范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员、方法和常量。还可以用于覆盖类中的成员和方法。
parent和self。parent指的就是派生类在 extends 声明中所指的基类的名字。这样做可以避免在多个地方使用基类的名字。
$this 伪变量。$this指向当前的实例。$this却不一定是方法所属的对象。有时候类A内的代码会调用类B的一个静态方法。参考例子:http://www.php.net/manual/zh/language.oop5.basic.php
static关键字。如果声明类成员或方法为static,就可以不实例化类而直接访问。但是,除了静态方法,不能通过一个对象来访问其中的静态成员。在静态方法中,不使用$this。而使用self:: 。
final关键字。可以作用于类(class)和方法(function),会使类不能被继承,方法不能被覆盖。

属性

可以初始化,但初始化的值必须是常数。常量前面用const个关键字,常量的值必须是一个定值,不能是变量,类属性或其它操作(如函数调用)的结果。

构造函数和析构函数

这两个函数都不会暗中调用基类的响应函数,这跟java的构造器机制不一样。要达到这样的效果,必须显示执行。析构函数中不能抛出异常。

抽象类:声明为抽象的类方法不能包含具体实现,抽象类不能实例化。必须先被继承,再实例化其子类。而且子类的访问控制要和抽象类一样,或者更加宽松。抽象类至少包含一个抽象方法的。

接口

使用接口(interface),你可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。
定义的所有方法都必须是public,且方法为空
可以定义常量,但是没有属性
接口的实现(implements)必须实现所有方法,而且可以实现多个接口(注意,方法不能重名)。
接口可以被另外的接口继承 (extends)

PHP 相关文章推荐
提升PHP执行速度全攻略(下)
Oct 09 PHP
PHP编码规范-php coding standard
Mar 16 PHP
深入PHP empty(),isset(),is_null()的实例测试详解
Jun 06 PHP
如何使用PHP获取指定日期所在月的开始日期与结束日期
Aug 01 PHP
54个提高PHP程序运行效率的方法
Jul 19 PHP
浅析Yii2 gridview实现批量删除教程
Apr 22 PHP
Yii模型操作之criteria查找数据库的方法
Jul 15 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
Sep 09 PHP
PHP 微信扫码支付源代码(推荐)
Nov 03 PHP
POST一个JSON格式的数据给Restful服务实例详解
Apr 07 PHP
mysqli扩展无法在PHP7下升级问题的解决
Sep 10 PHP
VSCode+PHPstudy配置PHP开发环境的步骤详解
Aug 20 PHP
php 记录进行累加并显示总时长为秒的结果
Nov 04 #PHP
php 按指定元素值去除数组元素的实现方法
Nov 04 #PHP
php数组函数序列之array_search()- 按元素值返回键名
Nov 04 #PHP
php 伪造本地文件包含漏洞的代码
Nov 03 #PHP
有关php运算符的知识大全
Nov 03 #PHP
PHP读取txt文件的内容并赋值给数组的代码
Nov 03 #PHP
PHP支持多种格式图片上传(支持jpg、png、gif)
Nov 03 #PHP
You might like
上海无线电三厂简史修改版
2021/03/01 无线电
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
使用php的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
PHP在线打包下载功能示例
2016/10/15 PHP
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
Jquery 表格合并的问题分享
2011/09/17 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
2013/02/06 Javascript
js 控制下拉菜单刷新的方法
2013/03/03 Javascript
JS实现一键回顶功能示例代码
2013/10/28 Javascript
JS实现向表格行添加新单元格的方法
2015/03/30 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
nodejs的安装使用与npm的介绍
2019/09/11 NodeJs
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
Python实现的快速排序算法详解
2017/08/01 Python
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
pandas 将list切分后存入DataFrame中的实例
2018/07/03 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
python super用法及原理详解
2020/01/20 Python
Python实现自动访问网页的例子
2020/02/21 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
python collections模块的使用
2020/10/16 Python
python 爬虫如何实现百度翻译
2020/11/16 Python
Wallis官网:英国女装零售商
2020/01/21 全球购物
研究生毕业论文导师评语
2014/12/31 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
人民的好儿女观后感
2015/06/18 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书
小学生节约用水倡议书
2019/08/12 职场文书
python glom模块的使用简介
2021/04/13 Python
python开发制作好看的时钟效果
2022/05/02 Python
Python 匹配文本并在其上一行追加文本
2022/05/11 Python