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
php5 mysql分页实例代码
Apr 10 PHP
PHP版自动生成文章摘要
Jul 23 PHP
用php的ob_start来生成静态页面的方法分析
Mar 09 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
Jan 09 PHP
两级联动select刷新后其值保持不变的实现方法
Jan 27 PHP
PHP中的流(streams)浅析
Jul 02 PHP
PHP语法小结之基础和变量
Nov 22 PHP
PHP正则表达式过滤html标签属性(DEMO)
May 04 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
Oct 14 PHP
php工具型代码之印章抠图
Jul 18 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 15 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
Nigma vs Liquid BO3 第二场2.13
2021/03/10 DOTA
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
Ajax请求在数据量大的时候出现超时的解决方法
2014/02/27 Javascript
js 判断js函数、变量是否存在的简单示例代码
2014/03/04 Javascript
实现checkbox全选、反选、取消JavaScript小脚本异常
2014/04/10 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
javascript的变量、传值、传址、参数之间关系
2015/07/26 Javascript
AngularJS基础 ng-href 指令用法
2016/08/01 Javascript
D3.js实现散点图和气泡图的方法详解
2016/09/21 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
深入解析js轮播插件核心代码的实现过程
2017/04/14 Javascript
JavaScript轮播停留效果的实现思路
2018/05/24 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
简单了解JavaScript异步
2019/05/23 Javascript
python统计文本字符串里单词出现频率的方法
2015/05/26 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
2019/01/19 Python
Python考拉兹猜想输出序列代码实践
2019/07/05 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
2020/02/27 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
2020/06/08 Python
python 爬虫如何实现百度翻译
2020/11/16 Python
python搜索算法原理及实例讲解
2020/11/18 Python
详解CSS3选择器:nth-child和:nth-of-type之间的差异
2017/09/18 HTML / CSS
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
BSTN意大利:德国街头和运动文化高品质商店
2020/12/22 全球购物
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
培训主管岗位职责
2014/02/01 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
花田少年史观后感
2015/06/16 职场文书
企业培训简报范文
2015/07/20 职场文书
意外事故赔偿协议书
2016/03/22 职场文书
商业计划书如何写?关键问题有哪些?
2019/07/11 职场文书
redis的list数据类型相关命令介绍及使用
2022/01/18 Redis
蓝牙耳机怎么连接电脑win11? Win11蓝牙耳机连接电脑的技巧
2023/01/09 数码科技