课程咨询 :027-87185216 QQ:2490085651

武汉PHP培训 > 达内新闻 > 由 php 中 if 想到的些问题
  • 由 php 中 if 想到的些问题

    发布:第一PHP社区      来源:第一PHP社区      时间:2016-06-23

  •     在编写一段并不复杂的脚本的时候,发现了一个问题。先说说代码,它的主要功能是用 PHP 判断是否生成一段 Javascript,并使用 Cookie 记录状态
        
        /* 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
        
        }
        ?>
        粗看起来代码已经无懈可击,我们亲爱的 小马 还是发现了问题的存在。就是在 Javascript 中的那个判断是永远为 true
        if ('undefined' == typeof document.cookie['cookieName']) {
        // ...
        }
        因为这段代码是在 PHP 端有个前提,就是
        if (!haveCookie('cookieName'))的时候,才会在客户端显示。那么,当不满足这一条件,这段代码自然就不会扔给客户端。这样说似乎有点笼统,那么先撇开 Javascript 代码,我们就单纯使用 PHP 代码表述一下
        
        header("Content-type: text/javascript");
        if (!haveCookie('cookieName')) {
        if (!haveCookie('cookieName')) {
        setCookie('cookieName');
        }
        }
        ?>
        这样就显得清晰了很多,并很容易就能发现问题所在 -- 我们在不经意间就多做了一次判断,虽然这是 Javascript 在客户端执行的。
        总结下,本人从这段代码想到的些废话:
        1.代码越长,不见得效率就越高
        2.在不影响逻辑和流程的情况下,尽量将多个判断写在一起
        3.尽量将低复杂度的函数放前判断
        4.过多的判断容易造成程序效率降低,在判断中使用高时间复杂度的函数时尤其要注意
        5.如果发现 if 嵌套得太多,就得重新考虑流程和算法
        6.健壮的代码不是靠过分的判断保证而成的
        7.将代码简化后,会发现很多还未发现的问题
        8.过多的判断另个角度理解,是缺乏对代码的信心

    推荐文章

上一篇:PHP的16进制互转

下一篇:非常精妙的 PHP 递归调用 代码

最新开班日期  |  更多

PHP高级开发工程师定制班

PHP高级开发工程师定制班

开班日期:3/15

PHP高级开发工程师周末班

PHP高级开发工程师周末班

开班日期:3/15

PHP高级开发工程师精品班

PHP高级开发工程师精品班

开班日期:3/15

PHP高级开发工程师就业班

PHP高级开发工程师就业班

开班日期:3/15

  • 地址:武汉市洪山区洪山亚贸广场B座12楼
  • 课程培训电话:027-87185216 QQ:2490085651     全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56