php代码重复太多怎么办

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

php代码重复太多怎么办

本文操作环境:windows7系统、PHP7.1版,DELL G3电脑

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

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

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

立即学习“PHP免费学习笔记(深入)”;

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

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

代码如下:

 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; }}?>

登录后复制

【推荐学习:PHP视频教程】

 

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

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

 

将一下代码加到上面:

代码如下:

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

登录后复制

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

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

 

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

 

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

以上就是php代码重复太多怎么办的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2517447.html

(0)
上一篇 2025年3月5日 16:02:57
下一篇 2025年3月2日 22:50:54

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php pdo oracle 乱码怎么办

    php pdo oracle乱码的解决办法:首先在“NLS_LANG”设置编码;然后修改“/etc/init.d/php-fpm”;接着在头部增加“/etc/profile.d/oracle.sh”;最后重新启动php即可。 本文操作环境:…

    2025年3月5日
    200
  • php怎么去除非数字

    php去除非数字的方法:首先创建一个PHP示例文件;然后创建一个含有非数字的字符串;最后通过“preg_replace(‘/D/’,”,’a1asd2asd3a’);”方式去除非数…

    2025年3月5日
    200
  • php怎么隐藏路径下载

    php隐藏路径下载的实现方法:1、通过“download_document”方法隐藏实际文件下载地址;2、通过“if (file_exists($file)) {…}”方式隐藏实际文件下载地址。 本文操作环境:windows7系…

    2025年3月5日
    200
  • php.可以重启不

    php是可以重启的,其重启方法:首先打开终端命令窗口;然后通过命令“service php-fpm restart”来重启PHP服务即可。 本文操作环境:linux5.9.8系统、PHP7.1版,DELL G3电脑 PHP服务重启 linu…

    2025年3月5日
    200
  • php pcntl用法

    php pcntl的用法:首先创建一个PHP示例文件;然后使用PCNTL系列的函数处理一个事务;最后通过一个“$pids”数组让主进程等候所有进程完结之后再结束即可。 本文操作环境:windows7系统、PHP7.1版,DELL G3电脑 …

    2025年3月5日
    200
  • php怎么去除警告

    php去除警告的方法:首先打开PHP页面文件;然后在php页面的开头部分加上“ini_set(“display_errors”,”Off”);”即可。 本文操作环境:windows7系统、PH…

    2025年3月5日
    200
  • php时间戳怎么转换成周

    php时间戳转换成周的方法:首先创建一个PHP示例文件;然后通过“function weekday($time){…}”方法根据时间戳返回周几即可。 本文操作环境:windows7系统、PHP7.1版,DELL G3电脑 php…

    2025年3月5日
    200
  • 怎么停止nginx和php服务

    停止nginx的方法:执行“nginx -s quit”或“nginx -s stop”命令。停止php服务的方法:执行“kill   -INT ` cat  /usr/local/php/var/run/php-fpm .pid`”命令。…

    2025年3月5日
    200
  • 怎么解决php部分乱码问题

    php部分乱码的解决办法:1、用Dreamweaver新建文件;2、在mysql里设置为utf8的字符集;3、在index.php的开头要写上“content=”text/html; charset=utf-8”。 本文操作环境…

    2025年3月5日
    200
  • php eof的用法

    php eof的用法:首先创建一个PHP示例文件;然后通过“echo 本文操作环境:windows7系统、PHP7.1版,DELL G3电脑 PHP EOF使用说明 下面来介绍一下如何使用EOF,具体如下: PHP EOF(heredoc)…

    2025年3月5日
    200

发表回复

登录后才能评论