php面向对象程序设计入门教程


Posted in PHP onJune 22, 2019

本文实例讲述了php面向对象程序设计。分享给大家供大家参考,具体如下:

1.面向对象与面向过程的对比

面向过程:以事件为中心,分几个步骤去完成。不可扩展,html与php不分离

面向对象:自己作为指挥者,指挥别人去做。具有可扩展性,html和php代码分离

2.什么是对象?

对象:自然间形形色色存在的可以看得见的东西(其实这个也不会很准确),[在代码中表现为]由代码执行出来的效果

3.什么是面向对象?

OOP(面向对象编程)是Object-oriented programming的缩写,具有灵活性,可维护性,能为程序员开启一扇大门

软件工程的三个目标:1.重用性 2.灵活性 3.可扩展性

面向对象编程的特点:①封装 ②继承 ③多态

4.什么是类?

具有属性和方法对象的抽象的描述

5.类的定义

定义角度:

静态描述:  就是我们熟悉的变量

动态描述(对象的功能):把动态描述写成函数,在对象中声明的函数叫做方法

所有的类都是从属性 和方法 两个方面去声明,属性和方法都是类中的成员,属性我们又叫做对象的成员属性,方法又叫做对象的成员方法.

成员属性:在类中直接声明的变量. 可以使用PHP中的标量类型和复合类型,所以也可以是其他类实例化的对象,在类中使用资源和空类型(null)没有意义.

关于成员属性的初始值一般情况是不赋的,大多情况都是在实例化对象后再给相应的成员属性赋上初始值.

成员方法:在对象中声明的函数叫做方法,

上述的成员属性和成员方法和面向过程中的声明变量与函数一样,只不过多了一些关键字 public protected private等.

class Classname{
  //成员属性
  public $name;
  public $age;
  //成员方法
  public function __construct($name,$age){
    //方法体
    $this->name=$name;
    $this->age=$age;
  }
  public function method(){
    //方法体
    //return 返回值
}

6.类和对象的关系

类的实例化就是对象.

//实例化
$mod = new Classname();

"$变量名"是通过类创建一个对象的引用名称,后面通过这个引用来访问对象中的成员
"new"表示要创建一个新的对象
"类名称"表示新对象的类型
"参数"指定了类的构造方法用于初始化对象的值
如果类中没有定义构造方法,PHP会自动的创建一个不带参数的默认的构造方法.
一个类可以实例化对个对象,每个对象彼此独立,互不影响,属性和方法不会共享,(如同一张玻璃杯设计图,可以按照这个图制造成千上万的玻璃杯,但是一个玻璃杯被打碎的时候,其他的可没有被打碎),也就是它们同属一个玻璃杯类.

7.对象中成员的访问

对象中成员的访问就两个    成员属性  成员方法

对于成员属性也就两个操作:1:赋值操作 2.获取成员属性值的操作

$引用名 new 类名称([参数列表]); //对象实例化
$引用名->成员属性=值;       //给成员属性赋值
echo $引用名->成员属性;      //获取成员属性的值
$引用名->成员方法;          //访问成员方法

如果对象的成员不是静态的static,那么唯一的访问形式就是"对象引用名->属性"(没有$符号),和"对象引用名->方法名()".

8.特殊的对象引用"$this"

在对象的外部我门可以实例化对象,用对象的引用来访问对象的成员.但是在对象的内部要访问对象的成员时,怎么办?难道要在内部实例化,答案是否定的.这里要引入一个特殊的对象引用"$this".

this代表本对象,在对象内部的成员方法中访问成员要使用this代表本对象,在对象内部的成员方法中访问成员要使用this->属性$this->方法.只能在成员方法中使用

9.构造方法和析构方法(魔术方法)

构造方法:

①如果声明类的时候没有显示的声明它,类中都会默认存在一个没有参数列表并且内容为空的构造方法.如果显示的声明它,那么默认的构造方法将不会存在.

②当实例化一个对象时,会被自动调用一次,就是每使用new关键字实例化一个对象,就调用一次.不能主动的通过对象的引用去调用构造方法.

③通常用来对成员属性赋初始值.

④php5以前的版本必须要方法名和类名相同

⑤同一个类只能有一个构造方法

public function __construct(){
  //主体
}

析构方法:

①允许在小辉衣阁对象之前执行的一些特定操作(关闭文件,释放结果集)

②没有任何参数

当堆内存中的对象失去他的访问引用时,就会被认为是垃圾对象,并进行回收.而析构方法正是在垃圾回收程序回收对象前调用的.

public function __destruct(){
  //方法体
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
基于mysql的bbs设计(二)
Oct 09 PHP
基于initPHP的框架介绍
Apr 18 PHP
实现PHP多线程异步请求的3种方法
Jan 17 PHP
zf框架的Filter过滤器使用示例
Mar 13 PHP
php使用正则表达式获取图片url的方法
Jan 16 PHP
Symfony数据校验方法实例分析
Jan 26 PHP
PHP贪婪算法解决0-1背包问题实例分析
Mar 23 PHP
PHP扩展框架之Yaf框架的安装与使用
May 18 PHP
浅谈PHP eval()函数定义和用法
Jun 21 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
PHP APP微信提现接口代码
Sep 30 PHP
Laravel框架处理用户的请求操作详解
Dec 20 PHP
PHP字符串中抽取子串操作实例分析
Jun 22 #PHP
微信公众号之主动给用户发送消息功能
Jun 22 #PHP
Yii 使用intervention/image拓展实现图像处理功能
Jun 22 #PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
Jun 22 #PHP
PHP中strtr与str_replace函数运行性能简单测试示例
Jun 22 #PHP
PHP判断函数是否被定义的方法
Jun 21 #PHP
php用户名的密码加密更安全的方法
Jun 21 #PHP
You might like
实现分十页分向前十页向后十页的处理
2006/10/09 PHP
PHP 数据结构 算法 三元组 Triplet
2011/07/02 PHP
php中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
php解析base64数据生成图片的方法
2016/12/06 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
Jquery 常用方法经典总结
2010/01/28 Javascript
Js组件的一些写法
2010/09/10 Javascript
js判断变量是否未定义的代码
2020/03/28 Javascript
js格式化时间和js格式化时间戳示例
2014/02/10 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
2015/10/08 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
浅谈在js传递参数中含加号(+)的处理方式
2016/10/11 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
JS实现json数组排序操作实例分析
2019/10/28 Javascript
学习python类方法与对象方法
2016/03/15 Python
Python 判断文件或目录是否存在的实例代码
2018/07/19 Python
解决python "No module named pip" 的问题
2018/10/13 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
pandas分批读取大数据集教程
2020/06/06 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
2020/12/07 Python
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
HTML5基于flash实现播放RTMP协议视频的示例代码
2020/12/04 HTML / CSS
Parts Express:音频、视频和扬声器的第一来源
2017/04/25 全球购物
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
Python文件操作的面试题
2013/06/22 面试题
工程开工庆典邀请函
2014/02/01 职场文书
公交公司毕业生求职信
2014/02/15 职场文书
李培根演讲稿
2014/05/22 职场文书
单位收入证明范本
2015/06/18 职场文书
工商行政处罚决定书
2015/06/24 职场文书
安全教育培训心得体会
2016/01/15 职场文书