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 相关文章推荐
一个从别的网站抓取信息的例子(域名查询)
Oct 09 PHP
php操作JSON格式数据的实现代码
Dec 24 PHP
php入门之连接mysql数据库的一个类
Apr 21 PHP
PHP 读取Postgresql中的数组
Apr 14 PHP
关于file_get_contents返回为空或函数不可用的解决方案
Jun 24 PHP
php 常用算法和时间复杂度
Jul 01 PHP
phpmailer中文乱码问题的解决方法
Apr 22 PHP
php对文件进行hash运算的方法
Apr 03 PHP
php隐藏实际地址的文件下载方法
Apr 18 PHP
wordpress网站转移到本地运行测试的方法
Mar 15 PHP
yii2多图上传组件的使用教程
May 10 PHP
PHP接入微信H5支付的方法示例
Oct 28 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
很好用的PHP数据库类
2009/05/27 PHP
关于php正则匹配汉字的方法介绍
2013/04/25 PHP
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
jquery可见性过滤选择器使用示例
2013/06/24 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
浅谈js中的三种继承方式及其优缺点
2016/08/10 Javascript
javascript中的后退和刷新实现方法
2016/11/10 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
用vue和node写的简易购物车实现
2017/04/25 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
2017/09/13 Javascript
基于Vue的移动端图片裁剪组件功能
2017/11/28 Javascript
Javascript中的作用域及块级作用域
2017/12/08 Javascript
使用jQuery给Table动态增加行、清空table的方法
2018/09/05 jQuery
JS实现的全选、全不选及反选功能【案例】
2019/02/19 Javascript
JavaScript工具库MyTools详解
2020/01/01 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
[02:27]2018DOTA2亚洲邀请赛赛前采访-OpTic
2018/04/03 DOTA
Python实现根据指定端口探测服务器/模块部署的方法
2014/08/25 Python
Python3 max()函数基础用法
2019/02/19 Python
python滑块验证码的破解实现
2019/11/10 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
美国流行背包品牌:JanSport(杰斯伯)
2018/03/02 全球购物
大学系主任推荐信范文
2013/12/24 职场文书
班委竞选演讲稿
2014/04/28 职场文书
医德考评自我评价
2014/09/14 职场文书
打架检讨书
2015/01/27 职场文书
幼儿园园务工作总结2015
2015/05/18 职场文书
公司新员工欢迎词
2015/09/30 职场文书
2016年世界人口日宣传活动总结
2016/04/05 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
GoFrame gredis缓存DoVar Conn连接对象 自动序列化GoFrame gredisDo/DoVar方法Conn连接对象自动序列化/反序列化总结
2022/06/14 Golang