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 全文搜索 技巧
Apr 27 PHP
提高define性能的php扩展hidef的安装和使用
Jun 14 PHP
php线性表顺序存储实现代码(增删查改)
Feb 16 PHP
删除html标签得到纯文本可处理嵌套的标签
Apr 28 PHP
yii框架通过控制台命令创建定时任务示例
Apr 30 PHP
ThinkPHP CURD方法之where方法详解
Jun 18 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
Nov 25 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
Jul 25 PHP
IOS 开发之NSDictionary转换成JSON字符串
Aug 14 PHP
php实现表单提交上传文件功能
May 28 PHP
PHP以json或xml格式返回请求数据的方法
May 31 PHP
Smarty模板类内部原理实例分析
Jul 03 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对象的方法
2015/07/08 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
php微信公众号开发之关键词回复
2018/10/20 PHP
laravel5.1 ajax post 传值_token示例
2019/10/24 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
JQuery-tableDnD 拖拽的基本使用介绍
2013/07/04 Javascript
巧用replace将文字表情替换为图片
2014/04/17 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
2016/12/07 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
webpack搭建vue 项目的步骤
2017/12/27 Javascript
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
讲解vue-router之命名路由和命名视图
2018/05/28 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
vue print.js打印支持Echarts图表操作
2020/11/13 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
Django--权限Permissions的例子
2019/08/28 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
保时捷设计:Porsche Design
2019/03/30 全球购物
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
奥巴马上海演讲稿
2014/09/10 职场文书
在Django中使用MQTT的方法
2021/05/10 Python
nginx刷新页面出现404解决方案(亲测有效)
2022/03/18 Servers
如何使用python包中的sched事件调度器
2022/04/30 Python
彻底弄懂Python中的回调函数(callback)
2022/06/25 Python