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数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
Oct 31 PHP
PHP按行读取、处理较大CSV文件的代码实例
Apr 09 PHP
Linux下PHP安装mcrypt扩展模块笔记
Sep 10 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
May 13 PHP
PHP7.0安装笔记整理
Aug 28 PHP
标准版Eclipse搭建PHP环境的详细步骤
Nov 18 PHP
php实现购物车功能(下)
Jan 05 PHP
PHP实现RTX发送消息提醒的实例代码
Jan 03 PHP
php使用PDO获取结果集的方法
Feb 16 PHP
通过php动态传数据到highcharts
Apr 05 PHP
浅析PHP7 的垃圾回收机制
Sep 06 PHP
thinkphp 框架数据库切换实现方法分析
May 18 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中设置、使用、删除Cookie的解决方法
2013/05/06 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
2016/03/22 PHP
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
jQuery实现宽屏图片轮播实例教程
2015/11/24 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
JavaScript中的对象和原型(一)
2016/08/12 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
JS Select下拉框(支持输入模糊查询)
2017/02/04 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
浅谈Vue 数据响应式原理
2018/05/07 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
vue实现简单全选和反选功能
2020/09/15 Javascript
python获取android设备的GPS信息脚本分享
2015/03/06 Python
Python 的描述符 descriptor详解
2016/02/27 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
选择Python写网络爬虫的优势和理由
2019/07/07 Python
Matplotlib 折线图plot()所有用法详解
2020/07/28 Python
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
医学专业毕业生个人的求职信
2013/12/04 职场文书
学生干部的自我评价分享
2014/01/18 职场文书
军训自我鉴定200字
2014/02/13 职场文书
保安队长职务说明书
2014/02/23 职场文书
英语专业自荐书
2014/06/13 职场文书
社区文艺活动方案
2014/08/19 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
活动经费申请报告
2015/05/15 职场文书
《去年的树》教学反思
2016/02/18 职场文书
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python
如何用RabbitMQ和Swoole实现一个异步任务系统
2021/05/29 PHP
Oracle配置dblink访问PostgreSQL的操作方法
2022/03/21 PostgreSQL
教你部署vue项目到docker
2022/04/05 Vue.js