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 相关文章推荐
图形数字验证代码
Oct 09 PHP
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
May 28 PHP
php 连接mssql数据库 初学php笔记
Mar 01 PHP
php Rename 更改文件、文件夹名称
May 24 PHP
用php简单实现加减乘除计算器
Jan 06 PHP
php通过strpos查找字符串出现位置的方法
Mar 17 PHP
php显示时间常用方法小结
Jun 05 PHP
PHP实现微信网页授权开发教程
Jan 19 PHP
PHP结合Ueditor并修改图片上传路径
Oct 16 PHP
总结的一些PHP开发中的tips(必看篇)
Mar 24 PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 14 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
Feb 10 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代码
2010/08/08 PHP
PHP基础知识回顾
2012/08/16 PHP
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
Mac环境下php操作mysql数据库的方法分享
2015/05/11 PHP
php+html5+ajax实现上传图片的方法
2016/05/14 PHP
PHP基于GD库的图像处理方法小结
2016/09/27 PHP
Stop SQL Server
2007/06/21 Javascript
return false;和e.preventDefault();的区别
2010/07/11 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
2013/01/27 Javascript
使用delegate方法为一个tr标签加一个链接
2014/06/27 Javascript
JQuery实现简单的服务器轮询效果实例
2016/03/31 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
vue项目设置scrollTop不起作用(总结)
2018/12/21 Javascript
浅谈vue异步数据影响页面渲染
2019/10/29 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
Python数据类型详解(二)列表
2016/05/08 Python
Python实现的矩阵类实例
2017/08/22 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
python 将json数据提取转化为txt的方法
2018/10/26 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
django序列化serializers过程解析
2019/12/14 Python
python单例设计模式实现解析
2020/01/07 Python
Python查找不限层级Json数据中某个key或者value的路径方式
2020/02/27 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
2021/02/02 Python
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
公务员职务工作的自我评价
2013/11/01 职场文书
前台文员岗位职责及工作流程
2013/11/19 职场文书
给全校老师的建议书
2014/03/13 职场文书
导游词之杭州西湖
2019/09/19 职场文书
JavaScript数组 几个常用方法总结
2021/11/11 Javascript
Oracle锁表解决方法的详细记录
2022/06/05 Oracle