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 相关文章推荐
mysql5详细安装教程
Jan 15 PHP
php 删除cookie和浏览器重定向
Mar 16 PHP
php 分页类 扩展代码
Jun 11 PHP
按上下级层次关系输出内容的PHP代码
Jul 17 PHP
php header Content-Type类型小结
Jul 03 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
Nov 09 PHP
php array的学习笔记
May 16 PHP
php中计算程序运行时间的类代码
Nov 03 PHP
使用phpstorm和xdebug实现远程调试的方法
Dec 29 PHP
ThinkPHP表单令牌错误的相关解决方法分析
May 20 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
php7中停止php-fpm服务的方法详解
May 09 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中call_user_func_array的作用
2013/06/07 PHP
php MessagePack介绍
2013/10/06 PHP
thinkphp的CURD和查询方式介绍
2013/12/19 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
js 目录列举函数
2008/11/06 Javascript
jQuery版仿Path菜单效果
2011/12/15 Javascript
基于jquery ajax 用户无刷新登录方法详解
2012/04/28 Javascript
A标签中通过href和onclick传递的this对象实现思路
2013/04/19 Javascript
多种方式实现JS调用后台方法进行数据交互
2013/08/20 Javascript
8个超实用的jQuery功能代码分享
2015/01/08 Javascript
JS中的进制转换以及作用
2016/06/26 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
JS实现动态星空背景效果
2019/11/01 Javascript
vue 实现强制类型转换 数字类型转为字符串
2019/11/07 Javascript
python+openCV调用摄像头拍摄和处理图片的实现
2019/08/06 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
2019/12/19 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
python实现程序重启和系统重启方式
2020/04/16 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
阿迪达斯比利时官方商城:adidas比利时
2016/10/10 全球购物
Visual-Click葡萄牙:欧洲领先的在线眼镜商
2020/02/17 全球购物
酒店保洁主管岗位职责
2013/11/28 职场文书
房地产项目策划书
2014/02/05 职场文书
一年级语文教学反思
2014/02/13 职场文书
汉语言文学职业规划
2014/02/14 职场文书
装配出错检讨书
2014/09/23 职场文书
大明湖导游词
2015/02/03 职场文书
会计出纳岗位职责
2015/03/31 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
理想国读书笔记
2015/06/25 职场文书
pt-archiver 主键自增
2022/04/26 MySQL