前段时间,在QQ上突然收到一个客户的消息,说分销商的订购库存出现了问题,聊天记录如下图所示:
他的网站是关于在微信里的在线门票订购系统,每种票型都可以设置分销商所能购买的数量,一旦购买了设置的最大数量,则分销商将无法购买该门票,如果不设置数量,则默认分销商所能购买的数量等于门票的总库存。现在出现的问题是,当分销商所能购买的该门票的数量为0时,只要该门票的总库存大于0,仍然可以购买该门票,即设置的数量购买限制存在bug。
河南网站建设公司价格,品牌型网站建设价格,商城网站建设价格,响应式网站建设价格,河南网站设计制作
收到这样的消息,我一定时间测试该功能是否正常,结论如客户所说,确实存在这样的问题,所以我就检查所写的程序,程序是这个判断的:
$company_ku_count = M('company_kucun')->where(Array('px_id'=>$px_id,'company_id'=>$member_main_id))->getField('ku_count');//得到分销商票型的授权数量
if($company_ku_count==’’){...}//即没有设置分销商的门票数量,则分销商可以购买的数量为门票的总数量。
河南网站建设公司价格,品牌型网站建设价格,商城网站建设价格,响应式网站建设价格,河南网站设计制作
elseif($company_ku_count>0){...}//则设置分销商的数量,最大可购买数量为$company_ku_count张。
看代码似乎没问题,因为两种情况都已经做了判断,所以花了不少时间在找bug,终于发if($company_ku_count==0){...}时,if($company_ku_count==’’){...}同样成立,也就是说0是等于空字符的,尝试使用if(emtpy($company_ku_count))来判断,同样得到的结果也是一样,这下我有点懵,因为当$company_ku_count=0或$company_ku_count=’’时,echo emtpy($company_ku_count)都输出1,所以就上网查找如何才能区别0与空字符,最终找到另一个检测变量的函数isset,isset与empty最大的区别是,一个变量$company_ku_count存在等于null,即echo isset($company_ku_count) ,输出空字符,而echo empty($company_ku_count)输出1。并且只要$company_ku_count存在且不等于null,则输出1. 例如$company_ku_count=100,则 isset($company_ku_count)输出1,而emtpy($company_ku_count)输出空字符。
由上面的结论可以解决这个问题了,只要用$isok = isset($company_ku_count),if($isok==’’){...}//即分销商没有设置存在的情况,而其他情况则是已经设置了购买数量限制,这样就解决客户上所说的Bug了,事情也到此为止。
河南网站建设公司价格,品牌型网站建设价格,商城网站建设价格,响应式网站建设价格,河南网站设计制作
为了学习isset与emtpy的知识,我们可以回顾下两者的区别:
河南网站建设公司价格,品牌型网站建设价格,商城网站建设价格,响应式网站建设价格,河南网站设计制作
河南亿宏世纪网络科技有限公司,专注于互联网+品牌整合营销,公司拥有专业的互联网管理、运营策划、UI设计、技术开发等团队,专业从事于工业互联网的开发建设。我司拥有成熟的网络技术开发团队,针对网站开发、技术服务、网站风格定位、网站功能优化、网站推广维护等都具备很强的专业技术水平,旨在为客户提供专业的互联网应用解决方案。公司始终秉持着诚信经营、质量为先的经营理念,我们不仅提供优质的网络技术和云端供应链服务,而且还在产品的选择、应用等方面提供专业的咨询与售后服务。