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 相关文章推荐
php中文本数据翻页(留言本翻页)
Oct 09 PHP
PHP一些有意思的小区别
Dec 06 PHP
PHP XML操作的各种方法解析(比较详细)
Jun 17 PHP
php中将汉字转换成拼音的函数代码
Sep 08 PHP
解析PHP无限级分类方法及代码
Jun 21 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
Feb 12 PHP
php取得字符串首字母的方法
Mar 25 PHP
php通过两层过滤获取留言内容的方法
Jul 11 PHP
thinkPHP分页功能实例详解
May 05 PHP
PHP基于堆栈实现的高级计算器功能示例
Sep 15 PHP
mongodb和php的用法详解
Mar 25 PHP
php输出文字乱码的解决方法
Oct 04 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
3种平台下安装php4经验点滴
2006/10/09 PHP
解析PHP生成静态html文件的三种方法
2013/06/18 PHP
php json_encode值中大括号与花括号区别
2013/09/30 PHP
小谈php正则提取图片地址
2014/03/27 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
javascript实现在网页中运行本地程序的方法
2016/02/03 Javascript
jQuery UI库中dialog对话框功能使用全解析
2016/04/23 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
2016/10/28 Javascript
jQuery序列化表单成对象的简单实现
2016/11/29 Javascript
JS仿淘宝搜索框用户输入事件的实现
2017/06/19 Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
2018/11/26 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
2019/05/21 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
Python安装图文教程 Pycharm安装教程
2018/03/27 Python
Django中使用Celery的方法示例
2018/11/29 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
python中数字是否为可变类型
2020/07/08 Python
Html5 web本地存储实例详解
2016/07/28 HTML / CSS
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
2015/02/22 面试题
.NET笔试题(20个问题)
2016/02/02 面试题
化工机械应届生求职信
2013/11/04 职场文书
化学教学随笔感言
2014/02/19 职场文书
大一学生职业生涯规划
2014/03/11 职场文书
超市商业计划书
2014/05/04 职场文书
初中体育课教学反思
2016/02/16 职场文书
小学科学课教学反思
2016/02/23 职场文书
你知道哪几种MYSQL的连接查询
2021/06/03 MySQL
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python