PHP面向对象程序设计实例分析


Posted in PHP onJanuary 26, 2016

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

在对超大型项目的开发过程中,如果使用面向过程地开发,代码量是非常的庞大,这将大量的用到判断和循环嵌套,和很多很相似的代码,不仅使项目代码量更加的庞大,还不利于开发,重用及维护。

面向对象就能很好的解决这个问题,面向对象很好的封装性,节省了很多精力,不用关心对象内部的运作,只要关心对象与对象之间的交互,便于维护,而继承性使得代码大量地精简。

我们先来看一个题目:

例:张三是一位普通人,别人早晨向他打招呼,他会说“早上好”,但是有一天他被车撞了,脑子受了一点伤,因此,别人早晨向他打招呼时,他有时会说:“早上好”,但有时会说:“晚上好”,甚至辱骂对方。

分析:因为现在要面向对象,那我们先把对象拿出来

 对象1:张三(人)   智商(名称是属性)   打招呼(动词是方法)

 对象2:车子

撞人(动词是方法)

<?php 
//创建一个human类,类是对象的实例(工厂里的模子)
class human{
  //普通人的iq为100
  public $iq = 100;
  //打招呼,早上看到人就早上好
  public function greet(){
    echo '早上好';
  }
}
//实例化一个对象李四
$lisi = new human();
$lisi->greet();
//返回早上好 
?>

这个是实例化一个正常的李四

下面来看被车子撞了的李四

<?php 
//创建一个human类,类是对象的实例(工厂里的模子)
class human{
  //普通人的iq为100
  public $iq = 100;
  //打招呼,早上看到人就早上好
  public function greet(){
    //当智商大于等于100
    if($this->iq>=100){
      echo '早上好','<br />';
    }else{
      //当智商小于100,随机出现以下问候
      $regard = array('早上好','晚上好','混蛋');
      echo $regard[rand(0,2)],'<br />';
    }
  }
}
//实例化一个对象李四
$lisi = new human();
$lisi->greet();
//返回早上好 
class car{
  public function hit($people){
    //撞了以后人的智商随机出现了变化
    $people->iq=rand(40,120);
  }
}
//实例化一辆宝马车子
$baoma = new car();
//宝马车子撞人了
$baoma->hit($lisi);
//撞人之后人的智商
echo $lisi->iq,'<br />';
//人的根据智商的多少,问候也不相同
$lisi->greet();
?>

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

PHP 相关文章推荐
php 中include()与require()的对比
Oct 09 PHP
重新封装zend_soap实现http连接安全认证的php代码
Jan 12 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
Jun 07 PHP
PHP5函数小全(分享)
Jun 06 PHP
php网站地图生成类示例
Jan 13 PHP
php用户注册时常用的检验函数实例总结
Dec 22 PHP
Yii中的cookie的发送和读取
Jul 27 PHP
php文件包含目录配置open_basedir的使用与性能详解
Apr 03 PHP
PHP实现的激活用户注册验证邮箱功能示例
Jun 06 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
Dec 13 PHP
Yii实现微信公众号场景二维码的方法实例
Aug 30 PHP
PHP类的声明与实例化及构造方法与析构方法详解
Jan 26 #PHP
php实现爬取和分析知乎用户数据
Jan 26 #PHP
简单谈谈php延迟静态绑定
Jan 26 #PHP
php制作的简单验证码识别代码
Jan 26 #PHP
php文档工具PHP Documentor安装与使用方法
Jan 25 #PHP
PHP代码维护,重构变困难的4种原因分析
Jan 25 #PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
Jan 25 #PHP
You might like
apache和php之间协同工作的配置经验分享
2013/04/08 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
2013/06/13 PHP
PHP连接MySQL数据的操作要点
2015/03/20 PHP
PHP验证信用卡卡号是否正确函数
2015/05/27 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
PHP钩子实现方法解析
2019/05/21 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
JS模拟多线程
2007/02/07 Javascript
javascript实现的基于金山词霸网络翻译的代码
2010/01/15 Javascript
JS限制上传图片大小不使用控件在本地实现
2012/12/19 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
canvas时钟效果
2017/02/16 Javascript
使用Node.js实现简易MVC框架的方法
2017/08/07 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
前端Vue项目详解--初始化及导航栏
2019/06/24 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
详解python statistics模块及函数用法
2019/10/27 Python
Python简单实现区域生长方式
2020/01/16 Python
Python高并发和多线程有什么关系
2020/11/14 Python
意大利体育用品网上商城:Nencini Sport
2016/08/18 全球购物
英国著名的小众美容品牌网站:Alyaka
2017/08/08 全球购物
猫咪家具:CatsPlay
2018/11/03 全球购物
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
Linux中如何用命令创建目录
2015/01/12 面试题
服装创业计划书范文
2014/02/05 职场文书
教师业务培训方案
2014/05/01 职场文书
学习保证书100字
2015/02/26 职场文书
Python使用Kubernetes API访问集群
2021/05/30 Python
海康机器人重磅发布全新算法开发平台VM4.2
2022/04/21 数码科技