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边学边教》(04.编写简易的通讯录――视频教程1)
Dec 13 PHP
在任意字符集下正常显示网页的方法二(续)
Apr 01 PHP
php格式化工具Beautify PHP小小BUG
Apr 24 PHP
php下删除一篇文章生成的多个静态页面
Aug 08 PHP
discuz程序的PHP加密函数原理分析
Aug 05 PHP
php 在线导入mysql大数据程序
Jun 11 PHP
php构造函数与析构函数
Apr 23 PHP
浅析Laravel5中队列的配置及使用
Aug 04 PHP
php常用正则函数实例小结
Dec 29 PHP
PHP实现动态创建XML文档的方法
Mar 30 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
Apr 02 PHP
Laravel 框架返回状态拦截代码
Oct 18 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
Aug 28 #PHP
Laravel学习教程之从入口到输出过程详解
Aug 27 #PHP
PHP使用栈解决约瑟夫环问题算法示例
Aug 27 #PHP
PHP基于递归实现的约瑟夫环算法示例
Aug 27 #PHP
PHP实现的简单sha1加密功能示例
Aug 27 #PHP
PHP实现的各类hash算法长度及性能测试实例
Aug 27 #PHP
详解PHP swoole process的使用方法
Aug 26 #PHP
You might like
杏林同学录(四)
2006/10/09 PHP
修改了一个很不错的php验证码(支持中文)
2007/02/14 PHP
php中去除所有js,html,css代码
2010/10/12 PHP
zf框架的数据库追踪器使用示例
2014/03/13 PHP
ThinkPHP中的三大自动简介
2014/08/22 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
php实现的用户查询类实例
2015/06/18 PHP
PHP简单的MVC框架实现方法
2015/12/01 PHP
Symfony2开发之控制器用法实例分析
2016/02/05 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
DEFER怎么用?
2006/07/01 Javascript
javascript模拟订火车票和退票示例
2014/04/24 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
AngularJS 模块化详解及实例代码
2016/09/14 Javascript
jQuery select自动选中功能实现方法分析
2016/11/28 Javascript
Vue 2.0 服务端渲染入门介绍
2017/03/29 Javascript
VUE axios上传图片到七牛的实例代码
2017/07/28 Javascript
JSON字符串操作移除空串更改key/value的介绍
2019/01/05 Javascript
jQuery ajax仿Google自动提示SearchSuggess功能示例
2019/03/28 jQuery
javascript实现简单搜索功能
2020/03/26 Javascript
pycharm 使用心得(四)显示行号
2014/06/05 Python
python time模块用法实例详解
2014/09/11 Python
Python字符串拼接六种方法介绍
2017/12/18 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
在IPython中进行Python程序执行时间的测量方法
2018/11/01 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
Python实现平行坐标图的绘制(plotly)方式
2019/11/22 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
Microsoft Advertising美国:微软搜索广告
2019/05/01 全球购物
自我评价范文分享
2014/01/04 职场文书
写好自荐信需做到的5要点
2014/03/07 职场文书
公司周年庆活动方案
2014/08/25 职场文书
在职证明范本
2015/06/15 职场文书
担保书范文
2019/07/09 职场文书
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers