php检查函数必传参数是否存在的实例详解


Posted in PHP onAugust 28, 2017

php检查函数必传参数是否存在的实例详解

在php实际编程中,接口经常会接收到前端传来的参数,其中有些参数不是必传的,有些参数是必传的,如何“检查函数必传参数是否存在”呢?为了解决该问题,可以参考以下的示例方法:

/** 
 * @brief 检测函数必传参数是否存在 
 * @param $params array 关联数组 要检查的参数 
 * @param array $mod array 索引数组 要检查的字段 
 * @param array $fields array 索引数组 额外要检查参数的字段 
 * @return bool 
 * @throws Exception 
 */ 
private function checkParamsExists($params, $mod = [], $fields = []) 
{ 
  if (empty($params)) { 
    throw new \Exception(Error::ERROR_INVALID_PARAMETER_MSG . ',[checkParamsExists] the array of params is empty', Error::ERROR_INVALID_PARAMETER_CODE); 
  } 
  $params = is_array($params) ? $params : [$params]; 
 
  if ($fields) { 
    $fields = array_flip($fields); 
    $params = array_merge($params, $fields); 
  }  
 
  foreach ($mod as $mod_key => $mod_value) { 
    if (!array_key_exists($mod_value, $params)) { 
      throw new \Exception(Error::ERROR_INVALID_PARAMETER_MSG . ',[checkParamsExists]' . json_encode($params) . ' do not have key field(' . $mod_value . ')', Error::ERROR_INVALID_PARAMETER_CODE); 
    } 
  } 
  return true; 
}

在实际应用时,于应用程序逻辑的开始处,直接调用该方法即可。

注意:其中的错误码为我自定义的错误码,使用时务必改成你自己的。

以上就是php检查函数必传参数是否存在的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
PHP 高手之路(二)
Oct 09 PHP
中国站长站 For Dede4.0 采集规则
May 27 PHP
php mssql 时间格式问题
Jan 13 PHP
zen cart新进商品的随机排序修改方法
Sep 10 PHP
php object转数组示例
Jan 15 PHP
php简单操作mysql数据库的类
Apr 16 PHP
Zend Framework教程之配置文件application.ini解析
Mar 10 PHP
PHP 绘制网站登录首页图片验证码
Apr 12 PHP
PHP序列化/对象注入漏洞分析
Apr 18 PHP
微信公众号开发之文本消息自动回复php代码
Aug 08 PHP
php中this关键字用法分析
Dec 07 PHP
laravel 解决强制跳转 https的问题
Oct 22 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
Aug 28 #PHP
Laravel学习教程之从入口到输出过程详解
Aug 27 #PHP
PHP使用栈解决约瑟夫环问题算法示例
Aug 27 #PHP
PHP基于递归实现的约瑟夫环算法示例
Aug 27 #PHP
PHP实现的简单sha1加密功能示例
Aug 27 #PHP
PHP实现的各类hash算法长度及性能测试实例
Aug 27 #PHP
详解PHP swoole process的使用方法
Aug 26 #PHP
You might like
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
PHP 实现重载
2021/03/09 PHP
Prototype PeriodicalExecuter对象 学习
2009/07/19 Javascript
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
js展开闭合效果演示代码
2013/07/24 Javascript
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
浅谈Vue中render中的h箭头函数
2019/11/07 Javascript
Js实现粘贴上传图片的原理及示例
2020/12/09 Javascript
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python单线程实现多个定时器示例
2014/03/30 Python
详解Python中的Cookie模块使用
2015/07/06 Python
Python内置函数—vars的具体使用方法
2017/12/04 Python
python 统计列表中不同元素的数量方法
2018/06/29 Python
详解python异步编程之asyncio(百万并发)
2018/07/07 Python
基于python中theano库的线性回归
2018/08/31 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
澳大利亚最好的厨具店:Kitchen Warehouse
2018/03/13 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
小学教师评语大全
2014/04/23 职场文书
会计求职信范文
2014/05/24 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
党的群众路线教育实践活动制度建设计划方案
2014/10/31 职场文书
2014年质量管理工作总结
2014/12/01 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书