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编码规范-php coding standard
Mar 16 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
Jul 23 PHP
php代码中使用换行及(\n或\r\n和br)的应用
Feb 02 PHP
php用正则表达式匹配URL的简单方法
Nov 12 PHP
ThinkPHP的MVC开发机制实例解析
Aug 23 PHP
thinkphp中ajax与php响应过程详解
Dec 08 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
Jul 04 PHP
优化WordPress的Google字体以加速国内服务器上的运行
Nov 24 PHP
Symfony2框架学习笔记之表单用法详解
Mar 18 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 PHP
PHP htmlentities()函数用法讲解
Feb 25 PHP
PHP 对接美团大众点评团购券(门票)的开发步骤
Apr 03 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
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
基于php iconv函数的使用详解
2013/06/09 PHP
PHP四舍五入精确小数位及取整
2014/01/14 PHP
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
2018/04/21 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
JavaScript中的对象化编程
2008/01/16 Javascript
基于jquery的一行代码轻松实现拖动效果
2010/12/28 Javascript
UpdatePanel和Jquery冲突的解决方法
2013/04/01 Javascript
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
jquery实现搜索框常见效果的方法
2015/01/22 Javascript
Jquery 实现图片轮换
2015/01/28 Javascript
js微信分享API
2020/10/11 Javascript
使用bootstrapValidator插件进行动态添加表单元素并校验
2016/09/28 Javascript
js通过Date对象实现倒计时动画效果
2017/10/27 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
2017/12/12 Javascript
vue实现图片滚动的示例代码(类似走马灯效果)
2018/03/03 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
使用express获取微信小程序二维码小记
2019/05/21 Javascript
js实现拖拽与碰撞检测
2020/09/18 Javascript
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
[50:22]完美盛典-2018年度红毯走秀
2018/12/16 DOTA
Python爬虫之xlml解析库(全面了解)
2017/08/08 Python
python调用matplotlib模块绘制柱状图
2019/10/18 Python
Django 批量插入数据的实现方法
2020/01/12 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
cf收人广告词
2014/03/14 职场文书
品德评语大全
2014/05/05 职场文书
学雷锋标语
2014/06/25 职场文书
安全目标责任书
2014/07/22 职场文书
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python
Linux磁盘管理方法介绍
2022/06/01 Servers