源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

由php if 想到的些问题

  • 时间:2022-01-08 14:13 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:由php if 想到的些问题
[u]复制代码[/u] 代码如下:
<?php  /* PHP code */  header("Content-type: text/javascript");  if (!haveCookie('cookieName')) {     // ... do something  ?>  /* Javascript code */  if ('undefined' == typeof document.cookie['cookieName']) {      setCookie('cookieName', 3600);  }     // ... do something with Javascript  <?php  }  ?>
粗看起来代码已经无懈可击,我们亲爱的 小马 还是发现了问题的存在。就是在 Javascript 中的那个判断是永远为 true
[u]复制代码[/u] 代码如下:
if ('undefined' == typeof document.cookie['cookieName']) {      // ...  }
因为这段代码是在 PHP 端有个前提,就是 if (!haveCookie('cookieName'))的时候,才会在客户端显示。那么,当不满足这一条件,这段代码自然就不会扔给客户端。这样说似乎有点笼统,那么先撇开 Javascript 代码,我们就单纯使用 PHP 代码表述一下
[u]复制代码[/u] 代码如下:
<?php  header("Content-type: text/javascript");  if (!haveCookie('cookieName')) {     if (!haveCookie('cookieName')) {         setCookie('cookieName');     }  }  ?>
这样就显得清晰了很多,并很容易就能发现问题所在 -- 我们在不经意间就多做了一次判断,虽然这是 Javascript 在客户端执行的。 总结下,本人从这段代码想到的些废话: 代码越长,不见得效率就越高 在不影响逻辑和流程的情况下,尽量将多个判断写在一起 尽量将低复杂度的函数放前判断 过多的判断容易造成程序效率降低,在判断中使用高时间复杂度的函数时尤其要注意 如果发现 if 嵌套得太多,就得重新考虑流程和算法 健壮的代码不是靠过分的判断保证而成的 将代码简化后,会发现很多还未发现的问题 过多的判断另个角度理解,是缺乏对代码的信心 最后,再次感谢 小马 同志。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部