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中利用XML技术构造远程服务(上)
Oct 09 PHP
基于qmail的完整WEBMAIL解决方案安装详解
Oct 09 PHP
PHP的FTP学习(三)
Oct 09 PHP
php radio 单选框获取与保持值的实现代码
May 15 PHP
php结合表单实现一些简单功能的例子
Jun 04 PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
Jun 09 PHP
关于Zend Studio 配色方案插件的介绍
Jun 24 PHP
深入解析phpCB批量转换的代码示例
Jun 27 PHP
PHP+JS实现大规模数据提交的方法
Jul 02 PHP
基于php实现随机合并数组并排序(原排序)
Nov 26 PHP
PHP可变函数学习小结
Nov 29 PHP
PHP通过文件路径获取文件名的实例代码
Oct 14 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
smarty模板中拼接字符串的方法
2014/02/14 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
让你的PHP,APACHE,NGINX支持大文件上传
2021/03/09 PHP
漂亮的提示信息(带箭头)
2007/03/21 Javascript
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
你必须知道的Javascript知识点之"单线程事件驱动"的使用
2013/04/23 Javascript
按下回车键指向下一个位置的一个函数代码
2014/03/10 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
jQuery多选框选择数量限制方法
2017/02/08 Javascript
node.js中express-session配置项详解
2017/05/31 Javascript
Angular 2 利用Router事件和Title实现动态页面标题的方法
2017/08/23 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
[05:02]2014DOTA2 TI中国区预选赛精彩TOPPLAY第三弹
2014/06/25 DOTA
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
python使用arp欺骗伪造网关的方法
2015/04/24 Python
详解flask入门模板引擎
2018/07/18 Python
如何在Python中实现goto语句的方法
2019/05/18 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
2019/07/11 Python
详解python with 上下文管理器
2020/09/02 Python
CSS3动画效果回调处理详解
2014/12/10 HTML / CSS
NEW LOOK官网:英国时装零售巨头之一,快时尚品牌
2017/01/11 全球购物
印度尼西亚最完整和最大的在线药房网站:Farmaku.com
2019/11/23 全球购物
init进程的作用
2012/04/12 面试题
中文专业毕业生自荐信
2013/10/28 职场文书
企业厂长岗位职责
2013/12/17 职场文书
创建市级文明单位实施方案
2014/03/01 职场文书
电焊工岗位职责
2014/03/06 职场文书
水毁工程实施方案
2014/04/01 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
小学少先队活动总结
2015/05/08 职场文书
Java 多线程并发FutureTask
2022/06/28 Java/Android