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 存取 MySQL 数据库的一个例子
Oct 09 PHP
PHP定时自动生成静态HTML的实现代码
Jun 20 PHP
晋城吧对DiscuzX进行的前端优化要点
Sep 05 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
Jul 28 PHP
php单例模式示例分享
Feb 12 PHP
PHP中的类型提示(type hinting)功能介绍
Jul 01 PHP
学习php设计模式 php实现装饰器模式(decorator)
Dec 07 PHP
PHP函数import_request_variables()用法分析
Apr 02 PHP
thinkPHP自定义类实现方法详解
Nov 30 PHP
PHP实现的激活用户注册验证邮箱功能示例
Jun 06 PHP
解决laravel 5.1报错:No supported encrypter found的办法
Jun 07 PHP
PHP使用ActiveMQ实例
Feb 05 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
php设计模式 Singleton(单例模式)
2011/06/26 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
2020/10/01 PHP
PHP实现动态web服务器方法
2015/07/29 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
2016/04/28 PHP
php实现微信原生支付(扫码支付)功能
2018/05/30 PHP
Prototype使用指南之base.js
2007/01/10 Javascript
一直复略了的一个问题,关于表单重复提交
2007/02/15 Javascript
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
2008/12/02 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
2014/01/10 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
用Node提供静态文件服务的方法
2018/07/06 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
centos下更新Python版本的步骤
2013/02/12 Python
跟老齐学Python之不要红头文件(2)
2014/09/28 Python
Python函数中*args和**kwargs来传递变长参数的用法
2016/01/26 Python
解读! Python在人工智能中的作用
2017/11/14 Python
python操作列表的函数使用代码详解
2017/12/28 Python
Numpy数组的保存与读取方法
2018/04/04 Python
Python 16进制与中文相互转换的实现方法
2018/07/09 Python
python2使用bs4爬取腾讯社招过程解析
2019/08/14 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
荷兰演唱会和体育比赛订票网站:viagogo荷兰
2018/04/08 全球购物
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
新西兰购物网站:TheMarket NZ
2020/09/19 全球购物
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
Order by的几种用法
2013/06/16 面试题
《将心比心》教学反思
2014/04/08 职场文书
产品发布会策划方案
2014/05/12 职场文书
写给妈妈的感谢信
2015/01/22 职场文书
2015年大学班主任工作总结
2015/04/30 职场文书
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python