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流量统计功能的实现代码
Sep 29 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
Aug 06 PHP
避免Smarty与CSS语法冲突的方法
Mar 02 PHP
php随机抽奖实例分析
Mar 04 PHP
php列出mysql表所有行和列的方法
Mar 13 PHP
分享五个PHP7性能优化提升技巧
Dec 07 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
Jan 04 PHP
PHP中each与list用法分析
Jan 08 PHP
PHP编程实现计算抽奖概率算法完整实例
Aug 09 PHP
PHP简单实现欧拉函数Euler功能示例
Nov 06 PHP
php链式操作的实现方式分析
Aug 12 PHP
php操作redis命令及代码实例大全
Nov 19 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数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
PHP使用CURL获取302跳转后的地址实例
2014/05/04 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
浅谈JavaScript编程语言的编码规范
2011/10/21 Javascript
JavaScript中this关键词的使用技巧、工作原理以及注意事项
2014/05/20 Javascript
JavaScript仿淘宝页面图片滚动加载及刷新回顶部的方法解析
2016/05/24 Javascript
JS实现的自动打字效果示例
2017/03/10 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
2017/07/07 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
2017/07/27 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
2017/08/18 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
2017/08/18 jQuery
Express进阶之log4js实用入门指南
2018/02/10 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
python实现sublime3的less编译插件示例
2014/04/27 Python
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
dataframe设置两个条件取值的实例
2018/04/12 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
python内打印变量之%和f的实例
2020/02/19 Python
python中如何打包用户自定义模块
2020/09/23 Python
详解px单位html5响应式方案
2018/03/08 HTML / CSS
电子商务应届生求职信
2013/11/16 职场文书
体育教育专业自荐信范文
2013/12/20 职场文书
国庆节文艺活动方案
2014/02/03 职场文书
技术岗位竞聘演讲稿
2014/05/16 职场文书
租房协议书样本
2014/08/20 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
北京天坛导游词
2015/02/12 职场文书
2016年七夕情人节宣传语
2015/11/25 职场文书
2016猴年开门红标语口号
2015/12/26 职场文书
如何在向量化NumPy数组上进行移动窗口
2021/05/18 Python
python实现语音常用度量方法的代码详解
2021/05/25 Python
Python中三种花式打印的示例详解
2022/03/19 Python