加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

由php if 想到的些问题

发布时间:2020-12-13 05:22:34 所属栏目:PHP教程 来源:网络整理
导读:div class="codetitle" a style="CURSOR: pointer" data="53512" class="copybut" id="copybut53512" onclick="doCopy('code53512')" 代码如下: div class="codebody" id="code53512" ?php / PHPcode / header("Content-type:text/javascript"); if(!haveCoo

<div class="codetitle"><a style="CURSOR: pointer" data="53512" class="copybut" id="copybut53512" onclick="doCopy('code53512')"> 代码如下:<div class="codebody" id="code53512">
<?php
/PHPcode/
header("Content-type:text/javascript");
if(!haveCookie('cookieName')){
//...dosomething
?>
/Javascriptcode/
if('undefined'==typeofdocument.cookie['cookieName']){
setCookie('cookieName',3600);
} //...dosomethingwithJavascript
<?php
}
?>

粗看起来代码已经无懈可击,我们亲爱的小马还是发现了问题的存在。就是在Javascript中的那个判断是永远为true <div class="codetitle"><a style="CURSOR: pointer" data="45226" class="copybut" id="copybut45226" onclick="doCopy('code45226')"> 代码如下:<div class="codebody" id="code45226">
if('undefined'==typeofdocument.cookie['cookieName']){
//...
}

因为这段代码是在PHP端有个前提,就是 if(!haveCookie('cookieName'))的时候,才会在客户端显示。那么,当不满足这一条件,这段代码自然就不会扔给客户端。这样说似乎有点笼统,那么先撇开Javascript代码,我们就单纯使用PHP代码表述一下 <div class="codetitle"><a style="CURSOR: pointer" data="23199" class="copybut" id="copybut23199" onclick="doCopy('code23199')"> 代码如下:<div class="codebody" id="code23199">
<?php
header("Content-type:text/javascript");
if(!haveCookie('cookieName')){
if(!haveCookie('cookieName')){
setCookie('cookieName');
}
}
?>

这样就显得清晰了很多,并很容易就能发现问题所在--我们在不经意间就多做了一次判断,虽然这是Javascript在客户端执行的。 总结下,本人从这段代码想到的些废话: 代码越长,不见得效率就越高
在不影响逻辑和流程的情况下,尽量将多个判断写在一起
尽量将低复杂度的函数放前判断
过多的判断容易造成程序效率降低,在判断中使用高时间复杂度的函数时尤其要注意
如果发现if嵌套得太多,就得重新考虑流程和算法
健壮的代码不是靠过分的判断保证而成的
将代码简化后,会发现很多还未发现的问题
过多的判断另个角度理解,是缺乏对代码的信心
最后,再次感谢小马同志。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读