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对象类型判断
Aug 27 PHP
PHP 动态随机生成验证码类代码
Apr 09 PHP
使用PHP静态变量当缓存的方法
Nov 13 PHP
php检索或者复制远程文件的方法
Mar 13 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
Nov 08 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
Mar 08 PHP
深入理解PHP中mt_rand()随机数的安全
Oct 12 PHP
PHP设计模式之装饰器模式定义与用法简单示例
Aug 13 PHP
PHP面向对象程序设计继承用法简单示例
Dec 28 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
Jun 05 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 PHP
PHP获取当前时间不准确问题解决方案
Aug 14 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(6) 面向对象
2010/02/16 PHP
php函数之子字符串替换 str_replace
2011/03/23 PHP
php使用curl抓取qq空间的访客信息示例
2014/02/28 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
2015/01/09 PHP
php简单定时执行任务的实现方法
2015/02/23 PHP
学习php设计模式 php实现单例模式(singleton)
2015/12/07 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
JavaScript 在线压缩和格式化收藏
2009/01/16 Javascript
jQuery检测返回值的数据类型
2015/07/13 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
React组件生命周期详解
2017/07/03 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
Vue数据双向绑定底层实现原理
2019/11/22 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
2020/08/10 Javascript
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
python中星号变量的几种特殊用法
2016/09/07 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
Python使用OpenCV进行标定
2018/05/08 Python
Python 抓取微信公众号账号信息的方法
2019/06/14 Python
简单了解python协程的相关知识
2019/08/31 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
CSS超出文本指定宽度用省略号代替和文本不换行
2016/05/05 HTML / CSS
美国折扣地毯销售网站:Rugs.com
2020/03/27 全球购物
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
大学自主招生推荐信
2014/05/10 职场文书
小区门卫岗位职责范本
2014/08/24 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
乔迁新居祝福语
2019/11/04 职场文书