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代码
Dec 06 PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
May 04 PHP
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
Jun 13 PHP
php采集文章中的图片获取替换到本地(实现代码)
Jul 08 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
May 19 PHP
PHP生成RSS文件类实例
Dec 05 PHP
php+mysql大量用户登录解决方案分析
Dec 29 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
Aug 31 PHP
开启PHP Static 关键字之旅模式
Nov 13 PHP
PHP中each与list用法分析
Jan 08 PHP
PHP 的Opcache加速的使用方法
Dec 29 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 PHP
浅谈Laravel队列实现原理解决问题记录
Aug 19 #PHP
yii2 commands模式以及配置crontab定时任务的方法
Aug 19 #PHP
利用 fsockopen() 函数开放端口扫描器的实例
Aug 19 #PHP
PHPMailer使用QQ邮箱实现邮件发送功能
Aug 18 #PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
Aug 18 #PHP
详解PHP如何更好的利用PHPstorm的自动提示
Aug 18 #PHP
Laravel学习教程之本地化模块
Aug 18 #PHP
You might like
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
PHP中一个有趣的preg_replace函数详解
2018/08/15 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
用JavaScript显示随机图像或引用
2009/04/21 Javascript
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
Seajs的学习笔记
2014/03/04 Javascript
png在IE6 下无法透明的解决方法汇总
2015/05/21 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
2016/01/12 Javascript
jQuery获取cookie值及删除cookie用法实例
2016/04/15 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
详解webpack自动生成html页面
2017/06/29 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
Angular8 实现table表格表头固定效果
2020/01/03 Javascript
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
Angular处理未可知异常错误的方法详解
2021/01/17 Javascript
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
python 队列详解及实例代码
2016/10/18 Python
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
Python基于动态规划算法解决01背包问题实例
2017/12/06 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
python实现嵌套列表平铺的两种方法
2018/11/08 Python
详解用python写一个抽奖程序
2019/05/10 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
解决pycharm中的run和debug失效无法点击运行
2020/06/09 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
白色公司:The White Company
2017/10/11 全球购物
上海天奕面试题笔试题
2015/04/19 面试题
如何清空Session
2015/02/23 面试题
建筑学专业自荐书
2014/07/09 职场文书
第一书记观后感
2015/06/08 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书