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小偷的核心程序
Apr 09 PHP
PHP下操作Linux消息队列完成进程间通信的方法
Jul 24 PHP
深入php var_dump()函数的详解
Jun 05 PHP
php版小黄鸡simsimi聊天机器人接口分享
Jan 26 PHP
PHP采集类Snoopy抓取图片实例
Jun 19 PHP
基于php实现随机合并数组并排序(原排序)
Nov 26 PHP
深入理解PHP中的count函数
May 31 PHP
微信公众平台开发(五) 天气预报功能开发
Dec 03 PHP
php ajax数据传输和响应方法
Aug 21 PHP
php获取微信基础接口凭证Access_token
Aug 23 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
Aug 27 PHP
PHP dirname简单使用代码实例
Nov 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
多文件上载系统完整版
2006/10/09 PHP
php5.3 废弃函数小结
2010/05/16 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
2011/03/09 PHP
Nginx环境下PHP flush失效的解决方法
2016/10/19 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
用jquery实现学校的校历(asp.net+jquery ui 1.72)
2010/01/01 Javascript
script标签属性type与language使用选择
2012/12/02 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
2014/03/03 Javascript
浅谈Jquery为元素绑定事件
2015/04/27 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
Javascript中的数组常用方法解析
2016/06/17 Javascript
详解有关easyUI的拖动操作中droppable,draggable用法例子
2017/06/03 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
微信小程序自定义扫码功能界面的实现代码
2020/07/02 Javascript
Element Dropdown下拉菜单的使用方法
2020/07/26 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
小程序点餐界面添加购物车左右摆动动画
2020/09/23 Javascript
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
tensorflow: 查看 tensor详细数值方法
2018/06/13 Python
Django配置celery(非djcelery)执行异步任务和定时任务
2018/07/16 Python
python实现屏保计时器的示例代码
2018/08/08 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
把pandas转换int型为str型的方法
2019/01/29 Python
Django实现单用户登录的方法示例
2019/03/28 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
利用Python优雅的登录校园网
2020/10/21 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
爱尔兰家电数码商城:Currys PC World爱尔兰
2016/07/23 全球购物
Java和Javasciprt的区别
2012/09/02 面试题
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
2014年最新领导班子整改方案
2014/09/27 职场文书
派出所正风肃纪剖析材料
2014/10/10 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL