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 session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
Nov 27 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 PHP
php数组声明、遍历、数组全局变量使用小结
Jun 05 PHP
php pki加密技术(openssl)详解
Jul 01 PHP
PHP获取本周第一天和最后一天示例代码
Feb 24 PHP
php计算给定时间之前的函数用法实例
Apr 03 PHP
PHP嵌套输出缓冲代码实例
May 12 PHP
Zend Framework教程之Application用法实例详解
Mar 14 PHP
Thinkphp微信公众号支付接口
Aug 04 PHP
php基于dom实现的图书xml格式数据示例
Feb 03 PHP
PHP DB 数据库连接类定义与用法示例
Mar 11 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
Feb 26 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
用php实现批量查询清除一句话后门的代码
2008/01/20 PHP
基于flush()不能按顺序输出时的解决办法
2013/06/29 PHP
php函数实现判断是否移动端访问
2015/03/03 PHP
firefox中用javascript实现鼠标位置的定位
2007/06/17 Javascript
javascript 表单验证常见正则
2009/09/28 Javascript
JavaScript 对象模型 执行模型
2009/12/06 Javascript
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
jQuery回调函数的定义及用法实例
2014/12/23 Javascript
三种Node.js写文件的方式
2016/03/08 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
2016/06/20 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
js querySelector() 使用方法
2016/12/21 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
2017/05/13 jQuery
vue-ajax小封装实例
2017/09/18 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
JavaScript内存泄漏的处理方式
2017/11/20 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
2017/12/29 Javascript
JS实现获取自定义属性data值的方法示例
2018/12/19 Javascript
详细教你微信公众号正文页SVG交互开发技巧
2019/07/25 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
JavaScript观察者模式原理与用法实例详解
2020/03/10 Javascript
python使用PyV8执行javascript代码示例分享
2013/12/04 Python
利用python代码写的12306订票代码
2015/12/20 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
python sitk.show()与imageJ结合使用常见的问题
2020/04/20 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
2020/05/20 Python
Space NK英国站:英国热门美妆网站
2017/12/11 全球购物
长青弘远的面试题
2012/06/09 面试题
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
国际商务专业学生个人的自我评价
2013/09/28 职场文书
继承公证书样本
2014/04/04 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
MySQL中CURRENT_TIMESTAMP的使用方式
2021/11/27 MySQL