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读取大文件的类SplFileObject使用介绍
Apr 09 PHP
php获取apk包信息的方法
Aug 15 PHP
php中操作memcached缓存进行增删改查数据的实现代码
Aug 15 PHP
destoon调用企业会员公司形象图片的实现方法
Aug 21 PHP
php解析xml方法实例详解
May 12 PHP
windows8.1下Apache+Php+MySQL配置步骤
Oct 30 PHP
PHP二维数组矩形转置实例
Jul 20 PHP
php实现购物车产品删除功能(2)
Jul 23 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
Jun 19 PHP
PHP5.6新增加的可变函数参数用法分析
Aug 25 PHP
详解php协程知识点
Sep 21 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备份/还原MySQL数据库的代码
2011/01/06 PHP
div li的多行多列 无刷新分页示例代码
2013/10/16 PHP
PHP获取数组最后一个值的2种方法
2015/01/21 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
socket.io实现在线群聊功能
2017/04/07 Javascript
easyui关于validatebox实现多重规则验证的方法(必看)
2017/04/12 Javascript
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
bootstrap select下拉搜索插件使用方法详解
2017/11/23 Javascript
微信小程序基于slider组件动态修改标签透明度的方法示例
2017/12/04 Javascript
微信小程序实现滚动消息通知
2018/02/02 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
JS实现长图上下滚动效果
2020/03/19 Javascript
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python实现跨excel的工作表sheet之间的复制方法
2018/05/03 Python
Python实现端口检测的方法
2018/07/24 Python
python设置环境变量的作用和实例
2019/07/09 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
python有几个版本
2020/06/17 Python
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
中专生自我鉴定
2013/12/17 职场文书
董事长助理岗位职责
2014/02/18 职场文书
细节决定成败演讲稿
2014/05/12 职场文书
学习党章的体会
2014/11/07 职场文书
教师个人成长总结
2015/02/11 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL
分享几个实用的CSS代码块
2022/06/10 HTML / CSS
js前端面试常见浏览器缓存强缓存及协商缓存实例
2022/06/21 Javascript