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 伪静态隐藏传递参数名的四种方法
Feb 22 PHP
thinkphp3.0 模板中函数的使用
Nov 13 PHP
php加水印的代码(支持半透明透明打水印,支持png透明背景)
Jan 17 PHP
php打印输出棋盘的实现方法
Dec 23 PHP
PHP中两个float(浮点数)比较实例分析
Sep 27 PHP
WordPress中设置Post Type自定义文章类型的实例教程
May 10 PHP
PHP中include()与require()的区别说明
Feb 14 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
May 08 PHP
php函数式编程简单示例
Aug 08 PHP
laravel 去掉index.php伪静态的操作方法
Oct 12 PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 PHP
laravel框架语言包拓展实现方法分析
Nov 22 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异步:在php中使用fsockopen curl实现类似异步处理的功能方法
2016/12/10 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
用js小类库获取浏览器的高度和宽度信息
2012/01/15 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
2014/09/21 Javascript
javascript中setTimeout使用指南
2015/07/26 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
js创建jsonArray传输至后台及后台全面解析
2016/04/11 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
2018/05/09 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
2018/05/11 Javascript
详解从Vue-router到html5的pushState
2018/07/21 Javascript
详解Vue中watch的详细用法
2018/11/28 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
2019/04/15 Javascript
Vue拖拽组件列表实现动态页面配置功能
2019/06/17 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
使用Python生成url短链接的方法
2015/05/04 Python
python统计cpu利用率的方法
2015/06/02 Python
Python中pygame的mouse鼠标事件用法实例
2015/11/11 Python
Python reduce()函数的用法小结
2017/11/15 Python
使用浏览器访问python写的服务器程序
2019/10/10 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
python中rc1什么意思
2020/06/19 Python
python中setuptools的作用是什么
2020/06/19 Python
CSS+jQuery+PHP+MySQL实现的在线答题功能
2015/04/25 HTML / CSS
html5视频播放_动力节点Java学院整理
2017/07/13 HTML / CSS
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
促销活动总结模板
2014/07/01 职场文书
营销学习心得体会
2014/09/12 职场文书
学生抄作业检讨书(2篇)
2014/10/17 职场文书
2014年助理工程师工作总结
2014/11/14 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python
nginx中proxy_pass各种用法详解
2021/11/07 Servers