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 zlib扩展实现页面GZIP压缩输出
Jun 17 PHP
php中显示数组与对象的实现代码
Apr 18 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
Mar 27 PHP
解析php中获取url与物理路径的总结
Jun 21 PHP
php获取文件内容最后一行示例
Jan 09 PHP
php使用smtp发送支持附件的邮件示例
Apr 13 PHP
PHP积分兑换接口实例
Feb 09 PHP
php数组转成json格式的方法
Mar 09 PHP
PHP实现的二分查找算法实例分析
Dec 19 PHP
PHP应用跨时区功能的实现方法
Mar 21 PHP
详解使用php-cs-fixer格式化代码
Sep 16 PHP
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
Mar 29 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
获取URL文件名后缀
2013/10/24 PHP
PHP实现采集中国天气网未来7天天气
2014/10/15 PHP
PHP实现动态柱状图改进版
2015/03/30 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
php英文单词统计器
2016/06/23 PHP
php PDO实现的事务回滚示例
2017/03/23 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
javascript 模式设计之工厂模式详细说明
2010/05/10 Javascript
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
JavaScript:Div层拖动效果实例代码
2013/08/06 Javascript
js/jQuery简单实现选项卡功能
2014/01/02 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
用js实现放大镜效果
2020/10/28 Javascript
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
Python中处理字符串之endswith()方法的使用简介
2015/05/18 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
浅谈PYTHON 关于文件的操作
2019/03/19 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
Python实现捕获异常发生的文件和具体行数
2020/04/25 Python
Python多线程:主线程等待所有子线程结束代码
2020/04/25 Python
介绍一下XMLHttpRequest对象的常用方法和属性
2013/05/24 面试题
大学生优秀自荐信范文
2014/02/25 职场文书
农村改厕实施方案
2014/03/22 职场文书
职员竞岗演讲稿
2014/05/14 职场文书
广告设计专业毕业生自我鉴定
2014/09/27 职场文书
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery
Nginx动静分离配置实现与说明
2022/04/07 Servers