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的宝库目录--PEAR
Oct 09 PHP
php 调试利器debug_print_backtrace()
Jul 23 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
Oct 26 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
Oct 30 PHP
PHP实现获取域名的方法小结
Nov 05 PHP
php实现SAE上使用storage上传与下载文件的方法
Jun 29 PHP
PHP超全局数组(Superglobals)介绍
Jul 01 PHP
PHP给文字内容中的关键字进行套红处理
Apr 12 PHP
PHP使用第三方即时获取物流动态实例详解
Apr 27 PHP
PHP实现会员账号单唯一登录的方法分析
Mar 07 PHP
使用laravel指定日志文件记录任意日志
Oct 17 PHP
goto语法在PHP中的使用教程
Sep 17 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输出含有“#”字符串的方法
2017/01/18 PHP
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
ExtJS如何设置与获取radio控件的选取状态
2014/01/22 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
javascript实现仿腾讯游戏选择
2015/05/14 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
JQuery组件基于Bootstrap的DropDownList(完整版)
2016/07/05 Javascript
JS实现简易刻度时钟示例代码
2017/03/11 Javascript
layui表格实现代码
2017/05/20 Javascript
JavaScript 中使用 Generator的方法
2017/12/29 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
JS获取url参数,JS发送json格式的POST请求方法
2018/03/29 Javascript
JavaScript事件委托原理与用法实例分析
2018/06/07 Javascript
vue2.0$nextTick监听数据渲染完成之后的回调函数方法
2018/09/11 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
Python 从列表中取值和取索引的方法
2018/12/25 Python
python SocketServer源码深入解读
2019/09/17 Python
Python中__repr__和__str__区别详解
2019/11/07 Python
Python csv文件的读写操作实例详解
2019/11/19 Python
python实现宿舍管理系统
2019/11/22 Python
用Python实现校园通知更新提醒功能
2019/11/23 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
python如何快速生成时间戳
2020/07/21 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
实习生个人的自我评价
2013/12/08 职场文书
药学专业个人的自我评价
2013/12/31 职场文书
文明礼仪演讲稿
2014/05/12 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
刑事辩护授权委托书范本
2014/10/17 职场文书
观后感格式
2015/06/19 职场文书
运动会100米广播稿
2015/08/19 职场文书
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python