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 相关文章推荐
用mysql内存表来代替php session的类
Feb 01 PHP
PHP中对于浮点型的数据需要用不同的方法解决
Mar 11 PHP
CodeIgniter框架过滤HTML危险代码
Jun 12 PHP
PHP实现下载断点续传的方法
Nov 12 PHP
php实现复制移动文件的方法
Jul 29 PHP
学习php设计模式 php实现策略模式(strategy)
Dec 07 PHP
全面解析PHP操作Memcache基本函数
Jul 14 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
Oct 25 PHP
Yii1.1中通过Sql查询进行的分页操作方法
Mar 16 PHP
PHP中file_put_contents追加和换行的实现方法
Apr 01 PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
Jul 09 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
Nov 08 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
php json_encode奇怪问题说明
2011/09/27 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
Javascript面向对象编程
2012/03/18 Javascript
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
2013/08/18 Javascript
JQuery each()嵌套使用小结
2014/04/18 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
jquery实现的省市区三级联动
2015/04/02 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
实现高性能JavaScript之执行与加载
2016/01/30 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
2016/02/02 Javascript
JavaScript中的时间处理小结
2016/02/24 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
JS查找字符串中出现最多的字符及个数统计
2017/02/04 Javascript
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
浅谈如何使用 webpack 优化资源
2017/10/20 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
2018/06/05 Javascript
在Layui中实现开关按钮的效果实例
2019/09/29 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
JS Thunk 函数的含义和用法实例总结
2020/04/08 Javascript
vue实现购物车的监听
2020/04/20 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
python中的多线程实例教程
2014/08/27 Python
举例讲解如何在Python编程中进行迭代和遍历
2016/01/19 Python
python绘制评估优化算法性能的测试函数
2019/06/25 Python
澳大利亚床上用品、浴巾和家居用品购物网站:Bambury
2020/04/16 全球购物
机械工程师求职自我评价
2013/09/23 职场文书
个人简历自我评价
2014/02/02 职场文书
好书伴我成长演讲稿
2014/05/14 职场文书
莫言诺贝尔获奖演讲稿
2014/05/21 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
解决numpy数组互换两行及赋值的问题
2021/04/17 Python