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 Ajax乱码
Apr 09 PHP
php中禁止单个IP与ip段访问的代码小结
Jul 04 PHP
Session服务器配置指南与使用经验的深入解析
Jun 17 PHP
PHP根据IP判断地区名信息的示例代码
Mar 03 PHP
php检测文件编码的方法示例
Apr 25 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
Aug 06 PHP
php实现的IMEI限制的短信验证码发送类
May 05 PHP
中高级PHP程序员应该掌握哪些技术?
Sep 23 PHP
php变量与数组相互转换的方法(extract与compact)
Dec 02 PHP
php获取当前url地址的方法小结
Jan 10 PHP
Laravel中使用Queue的最基本操作教程
Dec 27 PHP
PHP保存Base64图片base64_decode的问题整理
Nov 04 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的Yii框架中的缓存功能
2016/03/29 PHP
PHP构造函数与析构函数用法示例
2016/09/28 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
点击隐藏页面左栏或右栏实现js代码
2013/04/01 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
微信小程序 教程之wxapp视图容器 swiper
2016/10/19 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
vue学习教程之带你一步步详细解析vue-cli
2017/12/26 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
详解nodejs http请求相关总结
2019/03/31 NodeJs
详解Vue中使用Axios拦截器
2019/04/22 Javascript
js实现全选反选不选功能代码详解
2019/04/24 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
JavaScript中的各种宽高属性的实现
2020/05/08 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
python对json的相关操作实例详解
2017/01/04 Python
Python操作csv文件实例详解
2017/07/31 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
python简单贪吃蛇开发
2019/01/28 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
Python之变量类型和if判断方式
2020/05/05 Python
python中rc1什么意思
2020/06/19 Python
你正在寻找的CSS3 动画技术
2011/07/27 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
上课迟到检讨书100字
2014/01/11 职场文书
写求职信要注意什么问题
2014/04/12 职场文书
万能检讨书2000字
2014/10/17 职场文书
详解JavaScript中的执行上下文及调用堆栈
2021/04/29 Javascript
进行数据处理的6个 Python 代码块分享
2022/04/06 Python