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版(3)
Oct 09 PHP
IIS+PHP+MySQL+Zend配置 (视频教程)
Dec 13 PHP
非常精妙的PHP递归调用与静态变量使用
Dec 16 PHP
探讨PHP删除文件夹的三种方法
Jun 09 PHP
PHP与javascript实现变量交互的示例代码
Jul 23 PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 PHP
php原生导出excel文件的两种方法(推荐)
Nov 19 PHP
PHP 中常量的知识整理
Apr 14 PHP
Laravel5框架添加自定义辅助函数的方法
Aug 01 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
Aug 20 PHP
php7下的filesize函数
Sep 30 PHP
php中配置文件保存修改操作 如config.php文件的读取修改等操作
May 12 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
咖啡店都有些什么常规豆子呢?有什么风味在里面
2021/03/04 咖啡文化
如何使用“PHP” 彩蛋进行敏感信息获取
2013/08/07 PHP
php使用google地图应用实例
2014/12/31 PHP
php按字符无乱码截取中文的方法
2015/03/27 PHP
Yii2表单事件之Ajax提交实现方法
2017/05/04 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
PHP实现网站访问量计数器
2017/10/27 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
jQuery之日期选择器的深入解析
2013/06/19 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
webpack打包单页面如何引用的js
2017/06/07 Javascript
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
详解vuex commit保存数据技巧
2018/12/25 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
关于layui 弹出层一闪而过就消失的解决方法
2019/09/09 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
2019/10/23 jQuery
微信小程序之滑动页面隐藏和显示组件功能的实现代码
2020/06/19 Javascript
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
Python脚本文件打包成可执行文件的方法
2015/06/02 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
2020/06/18 Python
python中pivot()函数基础知识点
2021/01/03 Python
python如何发送带有附件、正文为HTML的邮件
2021/02/27 Python
美国网上眼镜商城:Zenni Optical
2016/11/20 全球购物
Pretty Little Thing美国:时尚女性服饰
2018/08/27 全球购物
党员个人思想汇报
2013/12/28 职场文书
销售团队口号大全
2014/06/06 职场文书
无犯罪记录证明
2014/09/19 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
五年级小学生评语
2014/12/26 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
Go timer如何调度
2021/06/09 Golang