大约11月前 - 没有评论
调试程序时遇到了关于字符串几个比较绕的问题,鼓捣了一阵子总是弄明白了几个,先大概说一下。 empty()函数。empty($var)函数如果 $var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,””、0、”0″、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的例如在注册时经常比较确认密码是否相等则不不适合使用empty进行判断。 == (等于)与===(恒等于)。‘==’比较两个变量如果相等则返回true,需要注意的是’==’并不区分类型,如1==‘1’将返回true;另外‘==’还会把0与”的关系认为是等价的,所以判断变量是否为空,也不宜使用‘==’。 ‘===’比较两个变量是否相等还会比较它们的类型,1===‘1’返回false。 不想说了,列代码: $a = 0; $b = ’0′; $c = ’00′; // empty 建议=== if($a == ”){ echo ‘empty’; }else{ echo ‘not empty’; } // not empty if($b == ”){ echo ‘empty’; }else{ echo ‘not empty’; } //empty $a,$b if(empty($a)){ echo ‘empty’;
大约1年前 - 1个评论
举一个很常见的例子,很多网站的登录并不是单独一个链接,而是在很多个页面上都有登录链接,方便用户随时可以登录,这样用户可以在首页index.php上登录,也可以在其他的页面上登录。而且登录后就会自动返回登录前的页面,比如,从index.php点登录的链接,就跳到了登录的页面login.php,提交到check.php文件,检查数据是否正确,然后check.php调用header(‘location: url’)跳转到指定的页面。 最直接的办法就是直接指定url要返回的路径,这确实是最简单的,却不一定可取,因为它不够自动,每次返回是都需要人工指定,非常不方便。(现在觉得这种方法也不比第三种差 Update:2010.03.20) 使用$_SERVER['HTTP_REFFERER'],返回前一个页面,这并非是一个好办法,它很容易出错。对于上面这个例子,如果登录成功,使用$_SERVER['HTTP_REFERER']check.php就会跳到它的前一个页面login.php,而不是index.php。 将url存到cookie中,在index.php页面上调用setcookie(‘url’,’index.php’),在提交数据之后,可以通过$_COOKIE['url']随时得到登录前的页面。缺点是,如果有100个页面有登录链接100个页面都需要修改cookie的url。一个更好的办法是在login.php中检查它的前一个页面,然后设置cookie,也就是不是让100个文件去修改cookie,而是交给login.php去做。 上面的几种方法在一些情况下都是可行的,按情况选择使用吧。 Related posts php 字符比较小结 (0) 关联表查询笔记 (0) unbuntu安装php的curl扩展 (0) ubuntu 下安装w32codecs解码器 (0)