广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php方法太多参数的解决方法
  • 856
分享到

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

2023-06-21 20:06:04 856人浏览 安东尼
摘要

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

这篇文章主要介绍了PHP方法太多参数的解决方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

php方法太多参数的解决办法:1、把参数对象化;2、定义一个BookModel类;3、对create方法进行改造,要求它的参数为BookModel类即可。

本文操作环境:windows7系统、PHP7.1、Dell G3。

PHP方法参数过多优化方案

我们在编写PHP方法时,通常有若干个参数,就像下面的代码:

Class Book{    public function create($name, $cateId, $author)    {        $params = [            'name' => $name,            'cateId' => $cateId,            'author' => $author        ];    }}

没有任何问题。

但是,随着业务的发展,参数可能会不断增加。就像上面的例子,创建一本书刚开始只有name/cateId/author三个参数,慢慢可能就变成了下面这样:

Class Book{    public function create($name, $cateId, $author, $year, $price, $publish, $country, $language)    {        $params = [            'name' => $name,            'cateId' => $cateId,            'author' => $author,            'year' => $year,            'price' => $price,            'publish' => $publish,            'country' => $country,            'language' => $language,        ];    }}

It works well!但是看起来总觉得不太优雅,当你调用这个方法的时候,鬼才知道参数的顺序是怎么样的!

如何优化呢?我们可以尝试把参数对象化。请看下面的代码:

class BookModel{    protected $name;    protected $cateId;    protected $author;    protected $year;    protected $price;    protected $publish;    protected $country;    protected $language;    public function getName()    {        return $this->name;    }    public function setName($name)    {        $this->name = $name;    }    public function getCateId()    {        return $this->cateId;    }    public function setCateId($cateId)    {        $this->cateId = $cateId;    }    public function getAuthor()    {        return $this->author;    }    public function setAuthor($author)    {        $this->author = $author;    }    public function getYear()    {        return $this->year;    }    public function setYear($year)    {        $this->year = $year;    }    public function getPrice()    {        return $this->price;    }    public function setPrice($price)    {        $this->price = $price;    }    public function getPublish()    {        return $this->publish;    }    public function setPublish($publish)    {        $this->publish = $publish;    }    public function getCountry()    {        return $this->country;    }    public function getLanguage()    {        return $this->language;    }    public function setLanguage($language)    {        $this->language = $language;    }}

上面定义了一个BookModel类,包含了一些属性。然后我们对create方法进行改造,要求它的参数为BookModel类。由于BookModel的数据结构是明确的,使用起来非常方便。create方法调整后:

Class Book{    public function create(BookModel $bookModel)    {        $params = [            'name' => $bookModel->getName(),            'cateId' => $bookModel->getCateId(),            'author' => $bookModel->getAuthor(),            'year' => $bookModel->getYear(),            'price' => $bookModel->getPrice(),            'publish' => $bookModel->getPublish(),            'country' => $bookModel->getCountry(),            'language' => $bookModel->getLanguage(),        ];    }}

看,面向对象编程的优势在这里凸显出来了!

感谢你能够认真阅读完这篇文章,希望小编分享的“php方法太多参数的解决方法”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网PHP编程频道,更多相关知识等着你来学习!

--结束END--

本文标题: php方法太多参数的解决方法

本文链接: https://www.lsjlt.com/news/300476.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • php方法太多参数的解决方法
    这篇文章主要介绍了php方法太多参数的解决方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php方法太多参数的解决办法:1、把参数对象化;2、定义一个BookModel类;...
    99+
    2023-06-21
  • php方法太多参数怎么办
    本文操作环境:Windows7系统、PHP7.1、Dell G3。php方法太多参数怎么办?PHP方法参数过多优化方案我们在编写PHP方法时,通常有若干个参数,就像下面的代码:Class Book { public function...
    99+
    2021-08-04
    php方法 参数
  • php代码重复太多的解决方法
    这篇文章主要介绍php代码重复太多的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php代码重复太多的解决办法:首先创建两个新类BookProduct和Cdproduct;然后使用类继承解决代码重复的问题即可...
    99+
    2023-06-14
  • mysql数据库提示连接太多的解决方法
    这篇文章将为大家详细讲解有关mysql数据库提示连接太多的解决方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql数据库提示连接太多的解决方法:1、登录mysql...
    99+
    2022-10-18
  • php获取get参数乱码的解决方法
    本文将为大家详细介绍“php获取get参数乱码的解决方法”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“php获取get参数乱码的解决方法”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一...
    99+
    2023-06-06
  • php中echo get参数乱码的解决方法
    这篇文章给大家分享的是有关php中echo get参数乱码的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php echo get参数乱码的解决办法:1、使用“iconv("gb231...
    99+
    2023-06-21
  • 数据库太大无法导入phpmyadmin的解决方法
    小编给大家分享一下数据库太大无法导入phpmyadmin的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!数据库太大无法导...
    99+
    2022-10-18
  • MongoDB 日志太大的解决方法
    MongoDB的日志增长的很快,/var所在的空间马上就占满了,即便换到另一个磁盘分区保存日志,日志还是增长的很快,磁盘眼看要告磬。有一个好办法,就是使用旋转日志。MongoDB的旋转日志有点怪,Linux...
    99+
    2022-10-18
  • MySQL官网下载太慢的解决方法
    这篇文章主要介绍MySQL官网下载太慢的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!今天重新配置了服务器,所有环境都搭建好了,万事具备,只欠MySql,于是去官网找了5.7...
    99+
    2022-10-18
  • java参数乱码问题解决方法
    对于Post方式提交的数据,可以使用request.setCharacterEncoding("gb2312");来明确指定获取请求参数时使用编码。但是此种方式只对Post方式提交有效。request.setCharacterEncodin...
    99+
    2014-06-20
    java 乱码
  • sql文件太大无法导入phpmyadmin的解决方法
    这篇文章主要介绍了sql文件太大无法导入phpmyadmin的解决方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、打开php.ini。...
    99+
    2022-10-18
  • Assert.assertEquals()方法参数详解
    junit.framework包下的Assert提供了多个断言方法. 主用于比较测试传递进去的两个参数. Assert.assertEquals();及其重载方法: 1. ...
    99+
    2022-11-12
  • Window.open()方法参数详解
    window.open()方法是JavaScript中的一个方法,用于打开一个新的浏览器窗口或者标签页。它接受多个参数来控制打开的窗...
    99+
    2023-09-01
    Window.open()
  • Mybatis Mapper中多参数方法不使用@param注解报错的解决
    目录问题描述寻求解决方案寻找原因拓展延伸在使用低版本的Mybatis的时候,Mapper中的方法如果有多个参数时需要使用@param注解,才能在对应xml的sql语句中使用参数名称获...
    99+
    2022-11-12
  • php函数参数的传递方法
    这篇文章给大家分享的是有关php函数参数的传递方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在调用函数时,需要向函数传递参数,被传入函数的参数称为实参,而函数定义的参数称为形参。而向函数传递参数的方式有四种,...
    99+
    2023-06-14
  • 老电脑安装win10太卡的解决方法
    老电脑安装win10太卡的解决方法,老电脑安装win10太卡该怎么办?应当有许多客户老电脑安装win10卡屏,猜疑是否由于电脑的配置低就不适宜安裝Win10,因此我为各位讲解几类完全免费的方式,实际效果尽管沒有更新硬件配置来的那样显著,但一...
    99+
    2023-07-14
  • win10以太网未启用dhcp的解决方法
    这篇文章主要介绍了win10以太网未启用dhcp的解决方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。win10以太网未启用dhcp怎么解决右击windows,点击运行(R...
    99+
    2023-06-10
  • windows10系统下以太网无法识别的解决方法
    这篇文章给大家分享的是有关windows10系统下以太网无法识别的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。windows10系统下以太网无法识别怎么办首先我们确保无线能连接上,我们利用键盘ctrl+...
    99+
    2023-06-10
  • canvas的drawImage方法参数详解
    canvas的drawImage方法是用来在画布上绘制图像的方法,它有三个不同的参数组合。1. drawImage(image, x...
    99+
    2023-09-09
    canvas
  • Spring MVC参数自动绑定List的解决方法
    最近遇到一个问题,在项目中需要传入一组对象。以前都只遇到过传入一个对象、多个对象或者一组数组的情况。很少遇到传入一组对象的情况。所以遇到这个问题的时候感觉有点棘手。本以为用这样的方法就能解决的。@RequestMapping("save1"...
    99+
    2023-05-30
    spring mvc list
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作