if($_POST[submit])与 if(isset($_POST[submit])) 的区别

if(isset($_POST['submit'])){
            echo "已经点了submit";
    }

 

if($_POST['submit']){
        echo "已经点了submit";
}

这两段代码有何区别?哪个效率高?

个人认为if(isset($_POST['submit']))效率高

$_POST['submit']是为了检验submit按钮有没有提交,也即是是初次打开表单(还没填写数据没提交),还是打开表单填写数据提交后

isset是为了验证$_POST['submit']是否初始化变量,在PHP环境一些设置警报类型中,如果没有isset检测会警报的

如果不加的话,环境编译页面时,就会是检查环境php.ini中的警报类型,来个判断是不警报,这样显然会比有isset时效率低上一些!


--还不明,你可以设下你的php.ini试下

在 php.ini 中的 error配置下错误显示方式
error_reporting=E_ALL
就会在没有加isset时警报 (记住修改设置是要重启环境的)


把error_reporting这个设为
error_reporting = E_ALL & ~E_NOTICE

就不会警报
--
你加上isset想必就不会来检查这个php.ini的error_reporting配置了!

我认为只有一种情况下他们会有不同,就是当 $_PSOT['submit']=""时,也就是$_PSOT['submit']是空字符串时,isset($_PSOT['submit'])值为 true,if(isset($_PSOT['submit']))判断为真,而if($_PSOT['submit'])判断为假,这是由于php的类 型戏法决定的。如果你的一个<form>的<input  type='submit'  name='submit'  value=''>这么写,那么当你提交后仅仅用if($_PSOT['submit'])判断的时候会if判断为假,这时候就与你的初衷就是不符 合的,if(isset($_PSOT['submit']))更严谨,把这种人为疏忽的特殊情况排除掉 ,当然这种疏忽一眼就能看见,value=''时提交按钮显示是个空白的按钮,不会有人在页面上有个空白按钮来提交表单吧。。。

前者不判断提交的内容是否为真,只检查变量是否存在。
后者判断提交的内容是否为真,即提交的内容不是空或者0时为真。

posted @ 2012-07-28 23:21  qbx1986  阅读(885)  评论(0编辑  收藏  举报