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 相关文章推荐
BBS(php & mysql)完整版(八)
Oct 09 PHP
Linux下ZendOptimizer的安装与配置方法
Apr 12 PHP
PHP 编写大型网站问题集
May 07 PHP
PHP迭代器实现斐波纳契数列的函数
Nov 12 PHP
php加速器eAccelerator的配置参数、API详解
May 05 PHP
PHP+jquery+ajax实现即时聊天功能实例
Dec 23 PHP
PHP SESSION的增加、删除、修改、查看操作
Mar 20 PHP
WordPress分页伪静态加html后缀
Jun 08 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
Sep 01 PHP
PHP回调函数概念与用法实例分析
Nov 03 PHP
Laravel框架实现文件上传的方法分析
Sep 29 PHP
php获取小程序码的实现代码(B类接口)
Jun 13 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 APC的安装与使用详解
2013/06/13 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
浅谈Laravel中的三种中间件的作用
2019/10/13 PHP
Laravel5.1 框架路由基础详解
2020/01/04 PHP
用Laravel轻松处理千万级数据的方法实现
2020/12/25 PHP
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
js模仿jquery的写法示例代码
2013/06/16 Javascript
Javascript中string转date示例代码
2013/11/01 Javascript
ReactNative中使用Redux架构总结
2017/12/15 Javascript
jQuery中图片展示插件highslide.js的简单dom
2018/04/22 jQuery
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
详解vue项目打包步骤
2019/03/29 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
Vue中实现权限控制的方法示例
2019/06/07 Javascript
webpack4 optimization使用总结
2019/11/10 Javascript
node.js Promise对象的使用方法实例分析
2019/12/26 Javascript
[03:15]2014DOTA2国际邀请赛 专访国士无双信心满满
2014/07/12 DOTA
python实时分析日志的一个小脚本分享
2017/05/07 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
scrapy-splash简单使用详解
2021/02/21 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
用CSS3实现瀑布流布局的示例代码
2017/11/10 HTML / CSS
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
自荐信的五个重要部分
2013/10/29 职场文书
班组长安全生产职责
2013/12/16 职场文书
个人委托书格式
2014/04/04 职场文书
建筑工地门卫岗位职责
2014/04/30 职场文书
技术经济专业求职信
2014/09/03 职场文书
教师批评与自我批评剖析材料
2014/10/16 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
珍惜时间的诗歌赏析
2019/08/23 职场文书