我的编程空间,编程开发者的网络收藏夹
学习永远不晚

php代码重复太多的解决方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

php代码重复太多的解决方法

这篇文章主要介绍php代码重复太多的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

php代码重复太多的解决办法:首先创建两个新类BookProduct和Cdproduct;然后使用类继承解决代码重复的问题即可。

php使用类继承解决代码重复的问题

这篇文章主要介绍了php使用类继承解决代码重复的问题,实例分析了继承的原理与使用技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了php使用类继承解决代码重复的问题。分享给大家供大家参考。具体分析如下:

继承直白地说就是给一个类建一个或多个子类,要创建子类就必须在类声明中使用 extends 关键字,新类名在前,extends 在中,父类名在后。

下例中,我们创建两个新类,BookProduct 和Cdproduct ,它们都继承自 ShopProduct 类。

代码如下:

<?phpheader('Content-type:text/html;charset=utf-8');// 从这篇开始,类名首字母一律大写,规范写法class ShopProduct{    // 声明类 public $numPages;   // 声明属性 public $playLenth; public $title; public $producerMainName; public $producerFirstName; public $price; function __construct($title,$firstName,$mainName,$price,$numPages=0,$playLenth=0){  $this -> title = $title;    // 给属性 title 赋传进来的值  $this -> producerFirstName= $firstName;  $this -> producerMainName = $mainName;  $this -> price= $price;  $this -> numPages= $numPages;  $this -> playLenth= $playLenth; } function getProducer(){    // 声明方法  return "{$this -> producerFirstName }"."{$this -> producerMainName}"; } function getSummaryLine(){  $base = "{$this->title}( {$this->producerMainName},";  $base .= "{$this->producerFirstName} )";  return $base; }}class CdProduct extends ShopProduct { function getPlayLength(){  return $this -> playLength; } function getSummaryLine(){  $base = "{$this->title}( {$this->producerMainName},";  $base .= "{$this->producerFirstName} )";  $base .= ":playing time - {$this->playLength} )";  return $base; }}class BookProduct extends ShopProduct { function getNumberOfPages(){  return $this -> numPages; } function getSummaryLine(){  $base = "{$this->title}( {$this->producerMainName},";  $base .= "{$this->producerFirstName} )";  $base .= ":page cont - {$this->numPages} )";  return $base; }}?>

由于子类没有定义构造方法,所以在实例化 BookProduct 和Cdproduct 类时,会自动调用父类 ShopProduct 的构造方法。

子类默认继承了父类所有的 public 和 protected方法与属性(但没有继承 private 方法与属性,后面会讲到这三个关键字的作用)。也就是说,我们可以在从 Cdproduct 类实例化的对象中调用 getProducer() 方法,尽管 getProducer() 是在 ShopProduct 类中定义的。

将一下代码加到上面:

代码如下:

$product2 = new CdProduct("PHP面向对象","郭","碗瓢盆",7,null,"7小时");print "美好生活:{$product2 -> getProducer()}<br>";// 结果是:美好生活:郭碗瓢盆

这两个子类都继承了父类的公共部分,但注意, BookProduct 和Cdproduct 类都覆写了 getSummaryLine() 方法,提供了自己独特的实现,说明子类可以拓展和修改父类的功能。

但该方法在父类中的实现似乎有点多余,因为它的两个子类都重写了该方法,不过其他子类可能会用到它的基本功能。该方法的存在为客户端代码提供了保证:所有的 ShopProduct 对象都将有 getSummaryLine() 方法, BookProduct 和Cdproduct 都使用各自的 getSummaryLine() 方法访问 $title 属性。

可能一开始,继承是一个不太容易理解的概念。首先我们可以知道,通过定义一个从其他类继承而来的类,我们确保一个类拥有其自由的功能和父类的功能。然后就是子类的“搜索”功能,当我们调用 $product2 -> getProducer() 时,在 CdProduct 类中并没有找到 getProducer() 方法,那么就查找 ShopProduct 类中是否有这个方法,有就调用,没有则报错。对属性的访问也是同样的道理。

看看 ShopProduct 的构造方法,就会发现我们仍然在 基类(父类)中管理本应是子类处理的数据:BookProduct 应该处理 $numPages 参数和属性;Cdproduct 应该处理 $playLength 参数和属性。要完成这个工作,我们需要在子类中分别定义构造方法。

以上是“php代码重复太多的解决方法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

php代码重复太多的解决方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

php代码重复太多的解决方法

这篇文章主要介绍php代码重复太多的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php代码重复太多的解决办法:首先创建两个新类BookProduct和Cdproduct;然后使用类继承解决代码重复的问题即可
2023-06-14

php方法太多参数的解决方法

这篇文章主要介绍了php方法太多参数的解决方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php方法太多参数的解决办法:1、把参数对象化;2、定义一个BookModel类;
2023-06-21

如何解决 PHP 函数中重复代码的问题?

通过封装重复代码,可以使用函数和闭包来消除代码中的冗余。函数将重复的任务封装成可重复使用的单元,闭包封装重复代码,并可以在函数外部访问作用域变量。实战案例中,我们将重复的发送电子邮件代码封装到函数中,以避免重复和冗余。如何在 PHP 函数中
如何解决 PHP 函数中重复代码的问题?
2024-05-01

php汉语代码出现乱码的解决方法

小编给大家分享一下php汉语代码出现乱码的解决方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!解决方法:使用header函数设置页面显示的文字编码,例“header("Content-Type:text/html;cha
2023-06-08

Java多线程执行处理业务时间太久解决方法代码示例

背景:在政府开发了一个应用系统,主要功能是让企业填写企业资质信息,然后通过给定的公式,统计这一系列的信息,以得分的形式展示给政府领导查看。目前有1300家企业填报。由于得分是实时显示的,所以导致统计功能很慢。代码运行流程:1、查出1300企
2023-05-30

PHP代码重构的原则与方法

php 重构遵循单一职责、开放-封闭、里氏替换等原则,通过提取方法、使用设计模式、借助工具和测试来实现重构。例如,将复杂函数拆分,使用依赖注入提高可测试性,实现代码的扩展性和可维护性。PHP 代码重构的原则与方法原则单一职责原则 (SRP
PHP代码重构的原则与方法
2024-05-09

有关条形码打印太浅或太深的原因及解决方法

近来有客户咨询,在条码生成软件生成条形码之后,连接打印机进行打印的时候,打印出来的条形码不是太深就是太浅,咨询这是怎么回事,该怎么解决?首先这里跟大家说下,出现这种情况,跟条码生成软件没有关系,你可以检查下你的打印机打印头是否需要更换必要的零件或者使用是否正确
有关条形码打印太浅或太深的原因及解决方法
2019-11-12

android中ListView多次刷新重复执行getView的解决方法

以前倒是没有注意listview的getView会重复执行多次,这次因为布局比较复杂,所以在测试的时候去断点跟踪,发现同一条数据不断的重复执行。觉得很奇怪,于是上网搜索了一下。网上的解释基本一致,就是ListView布局时height和wi
2022-06-06

php include乱码的解决方法

这篇“php include乱码的解决方法”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“php include乱码的解决方法”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所
2023-06-06

如何在Python中使用多继承解决复杂的代码重用问题

如何在Python中使用多继承解决复杂的代码重用问题引言:在编写复杂的代码时,代码重用性是一个非常重要的因素。Python中的多继承是一种强大的工具,它允许一个类从多个父类继承属性和方法。在本文中,我们将介绍如何在Python中使用多继承来
2023-10-22

php解压zip乱码的解决方法

这篇文章给大家分享的是有关php解压zip乱码的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php解压zip乱码的解决办法:首先打开相应的PHP文件;然后用PHP的zip封装协议解压去解决ZipArch
2023-06-14

解决方法:在Debian系统中修复PHP无法重启的情况

解决Debian环境下PHP重启失效的问题在Debian环境下,有时候我们会遇到PHP重启后并没有生效的情况。这个问题可能会导致我们在修改了PHP配置文件后无法及时生效,给我们带来不便。但是,幸运的是,我们可以通过一些方法来解决这个问题。
解决方法:在Debian系统中修复PHP无法重启的情况
2024-02-27

运行php代码提示array to string conversion的解决方法

这篇文章主要介绍了运行php代码提示array to string conversion的解决方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。场景一:这种场景比较少,大多数
2023-06-07

php中foreach乱码的解决方法

本文将为大家详细介绍“php中foreach乱码的解决方法”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“php中foreach乱码的解决方法”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下
2023-06-06

php中strftime乱码的解决方法

这篇文章主要为大家展示了“php中strftime乱码的解决方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php中strftime乱码的解决方法”这篇文章吧。php strftime乱码的解
2023-06-15

php中htmlentities乱码的解决方法

小编给大家分享一下php中htmlentities乱码的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php htmlentities乱码的解决办法:1、
2023-06-22

win8/8.1/10蓝屏自动重启 代码是bcmwl63a.sys的解决方法

win8/8.1/10有时会蓝屏自动重启,代码是 system-thread-not-handled(bcmwl63a.sys),出现一次后便会经常重复的蓝屏自动重启。那么怎么解决呢?很多朋友在碰到这类问题,都不知道所错,其实,这是由于电脑
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录