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制作静态网站的模板框架(一)
Oct 09 PHP
php 在线打包_支持子目录
Jun 28 PHP
判断Keep-Alive模式的HTTP请求的结束的实现代码
Aug 06 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
Dec 28 PHP
php专用数组排序类ArraySortUtil用法实例
Apr 03 PHP
PHP的Socket网络编程入门指引
Aug 11 PHP
PHP获取用户访问IP地址的5种方法
May 16 PHP
php解析xml 的四种简单方法(附实例)
Jul 11 PHP
php die()与exit()的区别实例详解
Dec 03 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
Apr 10 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 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中使用GD库做验证码
2016/03/31 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
php实现XML和数组的相互转化功能示例
2017/02/08 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
js类定义函数时用prototype与不用的区别示例介绍
2014/06/10 Javascript
jQuery中toggle()函数的使用实例
2015/04/17 Javascript
JS、jQuery中select的用法详解
2016/04/21 Javascript
websocket+node.js实现实时聊天系统问题咨询
2017/05/17 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
JavaScript模块详解
2017/12/18 Javascript
解决使用vue.js路由后失效的问题
2018/03/17 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
详解ECMAScript typeof用法
2018/07/25 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
Python中字典的基本知识初步介绍
2015/05/21 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
给大家整理了19个pythonic的编程习惯(小结)
2019/09/25 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
2020/06/06 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
纯css3实现走马灯效果
2014/12/26 HTML / CSS
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
洲际酒店集团英国官网:IHG英国
2019/07/10 全球购物
成功的餐厅经营创业计划书
2014/01/15 职场文书
高中军训感想800字
2014/02/23 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
安全生产月演讲稿
2014/05/09 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
紧急通知
2015/04/17 职场文书
2019年公司快递收发管理制度模板
2019/11/20 职场文书
一文帮你理解PReact10.5.13源码
2021/04/03 Javascript