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 相关文章推荐
用DBSQL类加快开发MySQL数据库程序的速度
Oct 09 PHP
在PHP3中实现SESSION的功能(二)
Oct 09 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 PHP
用PHP和Shell写Hadoop的MapReduce程序
Apr 15 PHP
PHP产生不重复随机数的5个方法总结
Nov 12 PHP
php实现的ping端口函数实例
Nov 12 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
Jan 22 PHP
PHP提高编程效率的20个要点
Sep 23 PHP
Mac下php 5升级到php 7的步骤详解
Apr 26 PHP
PHP数据分析引擎计算余弦相似度算法示例
Aug 08 PHP
php nginx 实时输出的简单实现方法
Jan 21 PHP
Codeigniter里的无刷新上传的实现代码
Apr 14 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入门学习的几个不错的实例代码
2008/07/13 PHP
php 归并排序 数组交集
2011/05/10 PHP
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
php设计模式之命令模式使用示例
2014/03/02 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
容易被忽略的JS脚本特性
2011/09/13 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
实例解析Array和String方法
2016/12/14 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
2017/01/13 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
详解通过源码解析Node.js中cluster模块的主要功能实现
2018/05/16 Javascript
js实现延迟加载的几种方法详解
2019/01/19 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
js实现小星星游戏
2020/03/23 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
浅析Python中将单词首字母大写的capitalize()方法
2015/05/18 Python
python实现web方式logview的方法
2015/08/10 Python
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
Go语言基于Socket编写服务器端与客户端通信的实例
2016/02/19 Python
Python使用matplotlib填充图形指定区域代码示例
2018/01/16 Python
对python:threading.Thread类的使用方法详解
2019/01/31 Python
pyinstaller打包单个exe后无法执行错误的解决方法
2019/06/21 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
python自动识别文本编码格式代码
2019/12/26 Python
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
Booking.com缤客中国:全球酒店在线预订网站
2020/05/03 全球购物
校园安全标语
2014/06/07 职场文书
图解上海144收音机
2021/04/22 无线电
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
css display table 自适应高度、宽度问题的解决
2021/05/07 HTML / CSS