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的curl实现get和post的代码
Aug 23 PHP
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
Jan 14 PHP
thinkphp3.2.2前后台公用类架构问题分析
Nov 25 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
Mar 18 PHP
PHP直接修改表内容DataGrid功能实现代码
Sep 24 PHP
PHP实现可自定义样式的分页类
Mar 29 PHP
PHP读取mssql json数据中文乱码的解决办法
Apr 11 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
Jun 20 PHP
用PHP的反射实现委托模式的讲解
Mar 22 PHP
laravel框架与其他框架的详细对比
Oct 23 PHP
在 Laravel 中动态隐藏 API 字段的方法
Oct 25 PHP
实例化php类时传参的方法分析
Jun 05 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入门教程 精简版
2009/12/13 PHP
PHP读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
PHP多进程编程实例
2014/10/15 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
PHP获取当前系统时间的方法小结
2018/10/03 PHP
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
js 调用百度地图api并在地图上进行打点添加标注
2014/05/13 Javascript
JavaScript严格模式禁用With语句的原因
2014/10/20 Javascript
angular使用bootstrap方法手动启动的实例代码
2017/07/18 Javascript
vue.js input框之间赋值方法
2018/08/24 Javascript
基于vue.js组件实现分页效果
2018/12/29 Javascript
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
Python+Wordpress制作小说站
2017/04/14 Python
Python 字符串换行的多种方式
2018/09/06 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
css3翻牌翻数字的示例代码
2020/02/07 HTML / CSS
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
使用canvas绘制超炫时钟
2014/12/17 HTML / CSS
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
Forever 21美国官网:美国标志性快时尚品牌
2017/02/20 全球购物
Tuckernuck官网:经典的美国品质服装、鞋子和配饰
2021/01/11 全球购物
校长岗位职责
2013/11/26 职场文书
一个大学生十年的职业规划
2014/01/17 职场文书
网络教育自我鉴定
2014/02/04 职场文书
捐书活动总结
2014/05/04 职场文书
会计专业自荐书
2014/07/08 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python
使用logback实现按自己的需求打印日志到自定义的文件里
2021/08/30 Java/Android
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL