html5中文学习网

您的位置: 首页 > 网络编程 > PHP编程 » 正文

由 php 中 if 想到的些问题_PHP教程_编程技术

[ ] 已经帮助:人解决问题

  在编写一段并不复杂的脚本的时候,发现了一个问题。先说说代码,它的主要功能是用 PHP 判断是否生成一段 Javascript,并使用 Cookie 记录状态mbtHTML5中文学习网 - HTML5先行者学习网

  mbtHTML5中文学习网 - HTML5先行者学习网

  /* PHP code */mbtHTML5中文学习网 - HTML5先行者学习网

  header("Content-type: text/javascript");mbtHTML5中文学习网 - HTML5先行者学习网

  if (!haveCookie('cookieName')) {mbtHTML5中文学习网 - HTML5先行者学习网

  // ... do somethingmbtHTML5中文学习网 - HTML5先行者学习网

  ?>mbtHTML5中文学习网 - HTML5先行者学习网

  /* Javascript code */mbtHTML5中文学习网 - HTML5先行者学习网

  if ('undefined' == typeof document.cookie['cookieName']) {mbtHTML5中文学习网 - HTML5先行者学习网

  setCookie('cookieName', 3600);mbtHTML5中文学习网 - HTML5先行者学习网

  }mbtHTML5中文学习网 - HTML5先行者学习网

  // ... do something with JavascriptmbtHTML5中文学习网 - HTML5先行者学习网

  mbtHTML5中文学习网 - HTML5先行者学习网

  }mbtHTML5中文学习网 - HTML5先行者学习网

  ?>mbtHTML5中文学习网 - HTML5先行者学习网

  粗看起来代码已经无懈可击,我们亲爱的 小马 还是发现了问题的存在。就是在 Javascript 中的那个判断是永远为 truembtHTML5中文学习网 - HTML5先行者学习网

  if ('undefined' == typeof document.cookie['cookieName']) {mbtHTML5中文学习网 - HTML5先行者学习网

  // ...mbtHTML5中文学习网 - HTML5先行者学习网

  }mbtHTML5中文学习网 - HTML5先行者学习网

  因为这段代码是在 PHP 端有个前提,就是mbtHTML5中文学习网 - HTML5先行者学习网

  if (!haveCookie('cookieName'))的时候,才会在客户端显示。那么,当不满足这一条件,这段代码自然就不会扔给客户端。这样说似乎有点笼统,那么先撇开 Javascript 代码,我们就单纯使用 PHP 代码表述一下mbtHTML5中文学习网 - HTML5先行者学习网

  mbtHTML5中文学习网 - HTML5先行者学习网

  header("Content-type: text/javascript");mbtHTML5中文学习网 - HTML5先行者学习网

  if (!haveCookie('cookieName')) {mbtHTML5中文学习网 - HTML5先行者学习网

  if (!haveCookie('cookieName')) {mbtHTML5中文学习网 - HTML5先行者学习网

  setCookie('cookieName');mbtHTML5中文学习网 - HTML5先行者学习网

  }mbtHTML5中文学习网 - HTML5先行者学习网

  }mbtHTML5中文学习网 - HTML5先行者学习网

  ?>mbtHTML5中文学习网 - HTML5先行者学习网

  这样就显得清晰了很多,并很容易就能发现问题所在 -- 我们在不经意间就多做了一次判断,虽然这是 Javascript 在客户端执行的。mbtHTML5中文学习网 - HTML5先行者学习网

  总结下,本人从这段代码想到的些废话:mbtHTML5中文学习网 - HTML5先行者学习网

  1.代码越长,不见得效率就越高mbtHTML5中文学习网 - HTML5先行者学习网

  2.在不影响逻辑和流程的情况下,尽量将多个判断写在一起mbtHTML5中文学习网 - HTML5先行者学习网

  3.尽量将低复杂度的函数放前判断mbtHTML5中文学习网 - HTML5先行者学习网

  4.过多的判断容易造成程序效率降低,在判断中使用高时间复杂度的函数时尤其要注意mbtHTML5中文学习网 - HTML5先行者学习网

  5.如果发现 if 嵌套得太多,就得重新考虑流程和算法mbtHTML5中文学习网 - HTML5先行者学习网

  6.健壮的代码不是靠过分的判断保证而成的mbtHTML5中文学习网 - HTML5先行者学习网

  7.将代码简化后,会发现很多还未发现的问题mbtHTML5中文学习网 - HTML5先行者学习网

  8.过多的判断另个角度理解,是缺乏对代码的信心mbtHTML5中文学习网 - HTML5先行者学习网


mbtHTML5中文学习网 - HTML5先行者学习网
mbtHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助