前段时间,在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的知识,我们可以回顾下两者的区别:
isset的返回值如下图所示:
文章标题:关于网站程序开发里有关0与空字符、null的知识
文章出自:https://www.cdcxhl.com/news/240311.html
成都网站建设公司_创新互联,为您提供网站策划、网站设计公司、做网站、网站导航、软件开发、定制网站
广告
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源:
创新互联