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 相关文章推荐
手把手教你使用DedeCms V3的在线采集图文教程
Apr 03 PHP
php下实现在指定目录搜索指定类型文件的函数
Oct 03 PHP
PHP学习之数组值的操作
Apr 17 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
Jun 24 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
Jan 19 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
Feb 02 PHP
PHP对象相互引用的内存溢出实例分析
Aug 28 PHP
基于PHP实现商品成交时发送短信功能
May 11 PHP
将PHP的session数据存储到数据库中的代码实例
Jun 24 PHP
php 使用redis锁限制并发访问类示例
Nov 02 PHP
php 运算符与表达式详细介绍
Nov 30 PHP
老生常谈PHP 文件写入和读取(必看篇)
May 22 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
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
php求数组全排列,元素所有组合的方法
2016/05/05 PHP
php源码 fsockopen获取网页内容实例详解
2016/09/24 PHP
event对象的方法 兼容多浏览器
2009/06/27 Javascript
JS 实现完美include载入实现代码
2010/08/05 Javascript
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
2017/11/09 Javascript
Vue如何实现响应式系统
2018/07/11 Javascript
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
Bootstrap 按钮样式与使用代码详解
2018/12/09 Javascript
详解vue-cli3多页应用改造
2019/06/04 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
Vuex中的Mutations的具体使用方法
2020/06/01 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
[15:46]教你分分钟做大人——沙王
2015/03/11 DOTA
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
2018/01/11 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
HTML5移动开发图片压缩上传功能
2016/11/09 HTML / CSS
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
美国Rue La La闪购网站:奢侈品、中高档品牌限时折扣
2016/10/19 全球购物
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
IMPORT的选项IGNORE有什么作用?缺省是什么设置?
2015/09/17 面试题
办理护照介绍信
2014/01/16 职场文书
《燕子》教学反思
2014/02/18 职场文书
身边的榜样活动方案
2014/08/20 职场文书
学校运动会广播稿
2014/10/11 职场文书
项目经理助理岗位职责
2015/04/13 职场文书
法院执行局工作总结
2015/08/11 职场文书
介绍信应该怎么开?
2019/04/03 职场文书
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js