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 相关文章推荐
用Flash图形化数据(二)
Oct 09 PHP
php select,radio和checkbox默认选择的实现方法
May 15 PHP
PHP中for与foreach的区别分析
Mar 09 PHP
使用php统计字符串中中英文字符的个数
Jun 23 PHP
php 强制下载文件实现代码
Oct 28 PHP
PHP命名空间(namespace)的使用基础及示例
Aug 18 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
php实现微信企业号支付个人的方法详解
Jul 26 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 PHP
PHP实现对图片的反色处理功能【测试可用】
Feb 01 PHP
php多进程应用场景实例详解
Jul 22 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
Oct 30 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错误日志 display_errors与log_errors的区别
2012/10/09 PHP
javascript简易缓动插件(源码打包)
2012/02/16 Javascript
extjs tabpanel限制选项卡数量实现思路及代码
2013/04/02 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
2016/09/23 Javascript
关于微信上网页图片点击全屏放大效果
2016/12/19 Javascript
jQuery使用ajax_动力节点Java学院整理
2017/07/05 jQuery
详解nodejs的express如何自动生成项目框架
2017/07/12 NodeJs
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
2020/06/05 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
[54:53]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第二场
2014/05/23 DOTA
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
Python实现提取谷歌音乐搜索结果的方法
2015/07/10 Python
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
Python文本统计功能之西游记用字统计操作示例
2018/05/07 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
Python 一句话生成字母表的方法
2019/01/02 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
Python绘图实现台风路径可视化代码实例
2020/10/23 Python
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
HTML5 与 XHTML2
2008/10/17 HTML / CSS
final, finally, finalize的区别
2012/03/01 面试题
银行职员自我鉴定
2014/04/20 职场文书
培训科主任岗位职责
2014/08/08 职场文书
乱丢垃圾袋检讨书
2014/10/08 职场文书
2015公务员试用期工作总结
2014/12/12 职场文书
党校毕业个人总结
2015/02/28 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
Java实现注册登录跳转
2022/06/16 Java/Android