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 七大优势分析
Jun 23 PHP
php 应用程序安全防范技术研究
Sep 25 PHP
PHP中全局变量global和$GLOBALS[]的区别分析
Aug 06 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
Feb 06 PHP
php+js实现图片的上传、裁剪、预览、提交示例
Aug 27 PHP
php $_SERVER windows系统与linux系统下的区别说明
Feb 14 PHP
thinkphp中的url跳转用法分析
Jul 12 PHP
php用户密码加密算法分析【Discuz加密算法】
Oct 12 PHP
PHP中快速生成随机密码的几种方式
Apr 17 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 PHP
总结PHP内存释放以及垃圾回收
Mar 29 PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 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
2009/06/29 PHP
php面向对象全攻略 (七) 继承性
2009/09/30 PHP
yii框架中的Url生产问题小结
2012/01/16 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
PHP实现QQ登录实例代码
2016/01/14 PHP
PHP中的self关键字详解
2019/06/23 PHP
JavaScript 小型打飞机游戏实现原理说明
2010/10/28 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
常用的JS验证和函数汇总
2014/12/23 Javascript
js实现兼容IE和FF的上下层的移动
2015/05/04 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
Web Uploader文件上传插件使用详解
2016/05/10 Javascript
深入理解JavaScript单体内置对象
2016/06/06 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
JavaScript中arguments和this对象用法分析
2018/08/08 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
js实现上下左右键盘控制div移动
2020/01/16 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
Django框架基础模板标签与filter使用方法详解
2019/07/23 Python
python爬虫 urllib模块发起post请求过程解析
2019/08/20 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
Django重设Admin密码过程解析
2020/02/10 Python
python实例化对象的具体方法
2020/06/17 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
利用Python优雅的登录校园网
2020/10/21 Python
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
竞选学生会主席演讲稿
2014/04/24 职场文书
师德师风承诺书
2014/05/23 职场文书
拾金不昧表扬稿大全
2015/05/05 职场文书
法定授权委托证明书
2015/06/18 职场文书
解决Golang中ResponseWriter的一个坑
2021/04/27 Golang