if和elseif连用的一些细节问题

今天在写后台的时候设计到了多个if的连用,由于个人习惯问题,并没有在意ifelseif的区别,结果发现了一些问题,废话少说看代码。

 $freq_cnt = 0;if($key == 'freq_cnt_group') {$freq_symbol = substr($value, 0, 1);$freq_number = (float)substr($value, 1);if ($freq_cnt == 0) {$query = $query->leftJoin('AppBundle:Samples', 'sn', 'with', 'p.sample_code =sn.sample_code')->leftJoin('AppBundle:SystemFalsePositive', 'sfp', 'with', 'p.gene_name=sfp.gene_name and p.hgvs_cds = sfp.hgvs_cds and sn.test_code = sfp.test_code')->andWhere("sfp.rate_group $freq_symbol :freq_number")->setParameter('freq_number', (float)$freq_number);$freq_cnt = $freq_cnt + 1;}if($freq_cnt == 1){$query = $query->andWhere("sfp.rate_group $freq_symbol :freq_number")->setParameter('freq_number', (float)$freq_number);}}

其实从就是第二个if($freq_cnt == 1)这里出了问题,我的本意是如果最外层freq_cnt为1的时候才执行第二个if,但是其实只要执行了第一个if ,由于$freq_cnt = $freq_cnt + 1的存在,freq_cnt会立马变为1,遇到第二个if正好可以执行。这里其实只要把第二个更改为elseif就可以了。
思考:遇到多个条件判断的时候,不能糊里糊涂一直if(新手的毛病),应该使用多条件判断的标准结构:if...elseif....else这种结构,良好习惯很重要。

if和elseif连用的一些细节问题相关推荐

  1. PHP中的else怎么用,php中ifelse与elseif使用区别实例介绍

    在php中if可以使用直接if else 或ElseIf来判断其它可能的出现情况了,下面来给大家介绍if else与ElseIf用法及一些细节上的区别了. If-Else 语句 如果您希望在某个条件成 ...

  2. matlab之程序流程控制简单介绍

    MATLAB中的程序流程控制语句有: 1.分支控制语句(if结构和switch结构) 2.循环控制语句(for循环.while循环.continue语句和break语句) 3.程序终止语句(retur ...

  3. 黑马程序员 if elseif else 与if if if连用的区别

    -----------android培训. java培训.期待与您交流! ---------- if else if else 与if if if连用的区别 前段时间写了一段代码, 此代码是获取一个二 ...

  4. 如何用C语言改变宏定义的大小,C语言中宏定义使用的小细节

    C语言中宏定义使用的小细节 #pragma#pragma 预处理指令详解 在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#p ...

  5. 独家 | 提速20倍!3个细节优化Tableau工作簿加载过程(附实例)

    作者:Jeffrey A. Shaffer 翻译:张玲 校对:丁楠雅 本文约3000字,建议阅读10分钟. 本文为你简要介绍快速加载Tableau工作簿的技巧,以优化其性能. Katarzyna &q ...

  6. disruptor实现细节及源码分析

    disruptor实现细节及源码分析 一.     背景介绍 Disruptor它是一个开源的并发框架,并获得 2011 Duke's 程序框架创新奖,能够在无锁的情况下实现网络的Queue并发操作. ...

  7. MySQL 的DDL DML DQL DCL细节解析 知道这些就够了

    SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data Definition Language) 对象: 数据库和表 ...

  8. MATLAB图像二值化函数im2bw与imbinarize对给定阈值的内部处理细节

    MATLAB图像处理工具包中的im2bw函数和imbinarize函数均可以实现灰度图像的二值化功能,且在MATLAB R2018a之后推荐使用imbinarize.但两者在内部处理图像的时候具有一些 ...

  9. 从关键字~C语言 — 期末考,考研,面试中那些你不得不知道的C语言关键字细节

    目录 引言: 初步认识了C语言的结构之后 博主将带您进入关键字的世界了 1. 关于变量 1.1 什么是变量 1.2 变量的定义与声明 1.3 为什么要定义变量 1.4 变量定义的本质 2. 关键字 2 ...

最新文章

  1. BC30138: 无法在路径“C:\WINDOWS\TEMP\”中创建临时文件: 拒绝访问。
  2. c语言继承机制的作用,计算机二级C++强化试题及答案
  3. 函数默认形参与占位参数
  4. isc-dhcp监听网口的实现步骤
  5. 数据结构—链表-建立单链表
  6. ar路由器 pppoe下发ipv6 dns_手机从路由器获取IP、光猫PPPOE拨号过程、IP/VLAN
  7. nyoj244 16进制的简单运算
  8. 双非院校,0项目经验,三个月入职大厂NLP算法岗,月薪30k+
  9. Excel如何删除表格中的空白列
  10. ApacheCN 活动汇总 2019.8.30
  11. CentOS虚拟机网络连接失败
  12. 3.3KW车载充电机开关电源设计方案资料数字控制单相PFC与全桥LLC 3.3KW 车载充电机OBC
  13. 华为P40系列搭载HMS后,华为钱包很不错
  14. UML图六种箭头含义
  15. mysql查询结果乘2倍_SQL查询总和乘以它应该的2倍
  16. CString的彻底解析
  17. 大数据系列 -- 数据埋点
  18. leetcode报错:reference binding to misaligned address 0xbebebebebebec0ba for type ‘int‘, which requir 4
  19. 【转载】大型医疗器械辐射发射的检测方法
  20. ES系列:查看所有索引及其状态

热门文章

  1. 微信小程序开发者工具模拟器调试界面看不到鼠标光标
  2. EditText常用方法
  3. P1506 拯救oibh总部
  4. arcgis怎么压缩tif文件_PDF怎么压缩上传?教你轻松实现文件瘦身
  5. 计算机视觉传达论文库,视觉传达参考文献
  6. find(==)函数matlab,MATLAB学习笔记(1 )find函数
  7. 从Seq2Seq,Attention,Transformer到ELMo,BERT,GPT-2(二)
  8. Linuxcentos常用命令
  9. html修改word页边距,word格式换成稿纸后怎么修改页边距?急!!
  10. 利齿C sharp代替C++(转)