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下MAIL的另一解决方案
Oct 09 PHP
测试您的 PHP 水平的题目
May 30 PHP
PHP伪造referer实例代码
Sep 20 PHP
PHP 身份证号验证函数
May 07 PHP
php学习笔记 数组的常用函数
Jun 13 PHP
PHP关联数组的10个操作技巧
Jan 21 PHP
PHP使用正则表达式清除超链接文本
Nov 12 PHP
实例讲解PHP面向对象之多态
Aug 20 PHP
php使用pdo连接mssql server数据库实例
Dec 25 PHP
PHP验证码类ValidateCode解析
Jan 07 PHP
浅谈php://filter的妙用
Mar 05 PHP
PHP中多字节字符串操作实例详解
Aug 23 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/11/14 PHP
php截取中文字符串不乱码的方法
2013/12/25 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
JavaScript入门教程(11) js事件处理
2009/01/31 Javascript
javascript 面向对象编程基础:继承
2009/08/21 Javascript
使用闭包对setTimeout进行简单封装避免出错
2013/07/10 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
jQuery使用drag效果实现自由拖拽div
2015/06/11 Javascript
javascript实现获取浏览器版本、浏览器类型
2015/12/02 Javascript
js阻止浏览器默认行为的简单实例
2016/05/15 Javascript
Bootstrap插件全集
2016/07/18 Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
2016/10/28 Javascript
jquery组件WebUploader文件上传用法详解
2020/10/23 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
Vue内部渲染视图的方法
2019/09/02 Javascript
Javascript作用域和作用域链原理解析
2020/03/03 Javascript
python批量同步web服务器代码核心程序
2014/09/01 Python
python删除过期文件的方法
2015/05/29 Python
python自动zip压缩目录的方法
2015/06/28 Python
python使用Matplotlib画饼图
2018/09/25 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
2018/12/28 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
django自定义非主键自增字段类型详解(auto increment field)
2020/03/30 Python
利用CSS的Sass预处理器(框架)来制作居中效果
2016/03/10 HTML / CSS
德购商城:德国进口直邮商城
2017/06/13 全球购物
独特的礼品和创新的科技产品:The Grommet
2018/02/24 全球购物
勤俭节约演讲稿
2014/05/08 职场文书
学校学习雷锋活动总结
2014/07/03 职场文书
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
乡党政领导班子群众路线教育实践活动个人对照检查材料
2014/09/20 职场文书
个人股份合作协议书
2014/10/24 职场文书
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫