PHP面向对象程序设计实例分析_php技巧

本文实例分析了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程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
, 面向对象
程序设计
js面向对象编程实例、js面向对象实例、java面向对象代码实例、面向对象实例、jquery面向对象实例,以便于您获取更多的相关知识。

时间: 2024-09-23 04:21:04

PHP面向对象程序设计实例分析_php技巧的相关文章

php中strlen和mb_strlen用法实例分析_php技巧

本文实例分析了php中strlen和mb_strlen用法.分享给大家供大家参考,具体如下: 首先看如下代码(文件编码utf8): <?php $utf8_string = "abcd我你他她它"; var_dump(strlen($utf8_string)); var_dump(mb_strlen($utf8_string, 'gb2312')); var_dump(mb_strlen($utf8_string, 'utf8')); var_dump(mb_strlen($ut

PHP中STDCLASS用法实例分析_php技巧

本文实例讲述了PHP中STDCLASS用法.分享给大家供大家参考,具体如下: PHP中STDCLASS在我们开发应用中使用到的不多,但是PHP中STDCLASS作用是非常的大的,下面我们一起来看PHP中STDCLASS的用法. 在WordPress中很多地方使用stdClass来定义一个对象(而通常是用数组的方式),然后使用get_object_vars来把定义的对象『转换』成数组. 如下代码所示: $tanteng = new stdClass(); $tanteng->name = 'tan

PHP数组函数array_multisort()用法实例分析_php技巧

本文实例分析了PHP数组函数array_multisort()用法.分享给大家供大家参考,具体如下: 有时候我们需要对二维数组的某个键的值进行排序,这里就是讨论这个问题.我们可以使用array_multisort()这个函数.array_multisort() 函数对多个数组或多维数组进行排序. 参数中的数组被当成一个表的列并以行来进行排序 - 这类似 SQL 的 ORDER BY 子句的功能.第一个数组是要排序的主要数组.数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行

PHP数学运算与数据处理实例分析_php技巧

本文实例讲述了PHP数学运算与数据处理方法.分享给大家供大家参考,具体如下: 一.数值数据类型 PHP中,数字或数值数据以及数学函数的使用很简单.基本来说,要处理两种数据类型:浮点数和整数.浮点数和整数值的内部表示分别是C数据类型double和int.类似于C,PHP中这些数据类型遵循同样的一组规则. PHP是一种松散类型的脚本语言,变量可以根据计算的需求改变数据类型.这就允许引擎动态地完成类型转换.所以,如果计算中包含数值和字符串,字符串会在完成计算之前转换为数值,而数值则会在与字符串连接之前

PHP中类的继承和用法实例分析_php技巧

本文实例讲述了PHP中类的继承和用法.分享给大家供大家参考,具体如下: 1.继承关键字 :extends PHP类的继承,我们可以理解成共享被继承类的内容.PHP中使用extends单一继承的方法,请切忌!(非C++多继承)被继承的类我们叫做父类(基类)继承者成为子类(派生类). 2.PHP继承的规则 CLASS1------>CLASS2------>CLASS3 依次被继承,class3拥有class1.class2所以功能和属性,避免方法和属性重名. class  Son{} 继承cla

PHP二维数组去重实例分析_php技巧

本文实例分析了PHP二维数组去重的方法.分享给大家供大家参考,具体如下: 都知道一维数组去重用系统函数 array_unique($arr) 然后今天我用到二维数组了,也想去重,百度一大堆,都是将二维转一维 然后使用array_unique($arr) 看得我很恼火,所以决定自己写一个.比他的简单好懂,记录下来,以备后用 header('content-type:text/html;charset=utf8'); $arr = array( array('id'=>1,'psid'=>'P10

PHP计算日期相差天数实例分析_php技巧

本文实例分析了PHP计算日期相差天数的方法.分享给大家供大家参考,具体如下: <?PHP //今天与2016年10月27日相差多少天 $Date_1=date("Y-m-d"); $Date_2="2016-10-27"; $d1=strtotime($Date_1); $d2=strtotime($Date_2); $Days=round(($d1-$d2)/3600/24); echo "今天与2016年10月27日相差".$Days.

php自动载入类用法实例分析_php技巧

本文实例讲述了php自动载入类用法.分享给大家供大家参考,具体如下: <?php //function __autoload($class_name) { // require_once $class_name . '.php'; //} spl_autoload_register(array("core",'autoload'));//当实例化类的时候,自动调用core类中的autoload()方法来载入类 //也可以使用__autoload()来实现,但是php新版本建议使用

php进程间通讯实例分析_php技巧

本文实例讲述了php进程间通讯的方法.分享给大家供大家参考,具体如下: php单进程单线程处理批量任务太慢了,受不鸟了,但是php不能多线程,最终选择了多进程处理批量任务. php多进程主要使用for进行分裂,然后利用的unix/linux的信号量进行进程间通讯. 本例使用的是:生产者=>消费者=>收集器,的模式. <?php // ===== 全局变量 ===== // ipc进程间通讯 $key = ftok(__FILE__, "a"); $queue = ms