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 30 PHP
PHP array_push 数组函数
Dec 26 PHP
php下用cookie统计用户访问网页次数的代码
May 09 PHP
解析thinkphp中的导入文件标签
Jun 20 PHP
linux实现php定时执行cron任务详解
Dec 24 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
php读取txt文件并将数据插入到数据库
Feb 23 PHP
Laravel5.1自定义500错误页面示例
Oct 09 PHP
老生常谈PHP面向对象之命令模式(必看篇)
May 24 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
PHP空值检测函数与方法汇总
Nov 19 PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 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
从零开始学YII2框架(四)扩展插件yii2-kartikgii
2014/08/20 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
如何取得中文输入的真实长度?
2006/06/24 Javascript
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
javascript encodeURI和encodeURIComponent的比较
2010/04/03 Javascript
jQuery实现的多选框多级联动插件
2014/05/02 Javascript
抛弃Nginx使用nodejs做反向代理服务器
2014/07/17 NodeJs
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
javascript实现控制文字大中小显示
2015/04/28 Javascript
理解javascript闭包
2015/12/15 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
2017/03/21 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
Angular4.0动画操作实例详解
2019/05/10 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
Python FTP操作类代码分享
2014/05/13 Python
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
Python 如何查找特定类型文件
2020/08/17 Python
html svg生成环形进度条的实现方法
2019/09/23 HTML / CSS
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
Sephora丝芙兰泰国官方网站:国际知名化妆品购物
2017/11/15 全球购物
Homestay中文官网:全球寄宿家庭
2018/10/18 全球购物
英国和国际包裹递送:ParcelCompare
2019/08/26 全球购物
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
社团成立邀请函
2014/01/08 职场文书
优秀团员个人事迹材料
2014/01/29 职场文书
优秀经理事迹材料
2014/02/01 职场文书
企业环保标语
2014/06/10 职场文书
班子四风对照检查材料
2014/08/21 职场文书
目标责任书格式范文
2015/05/11 职场文书
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle
Android开发 使用文件储存的方式保存QQ密码
2022/04/24 Java/Android