isset -- 检测变量是否设置bool empty ( mixed var ) 如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。 <?php $var = 0;// 结果为 true,因为 $var 为空 if (empty($var)) { echo '$var is either 0 or not set at all'; }// 结果为 false,因为 $var 已设置 if (!isset($var)) { echo '$var is not set at all'; } ?> 是否设置跟为空不是相同的
你要确定你提交的表单中没有'a'这一项,那么这个判断就是false,否则即使'a'这项在表单中没有输出值,isset($_POST['a'])也是true。
如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。
<?php
$var = 0;// 结果为 true,因为 $var 为空
if (empty($var)) {
echo '$var is either 0 or not set at all';
}// 结果为 false,因为 $var 已设置
if (!isset($var)) {
echo '$var is not set at all';
}
?> 是否设置跟为空不是相同的
那当然不行!
<input type=text name=a id=a >
这样post的话,$_POST['a']显然是存在的 只不过是空而已
isset并不是用来判断变量中有没有值的 只是用来判断变量存不存在
程序处理页面把if(!(isset($_GET['a'])))改为了if(!(isset($_POST['a'])))
但这样如果提交过来的a的值为空,他判断不出来,要用 if($_POST['a']=="")才可以
希望这次表达清楚了,我只是想知道为什么用 if(!(isset($_POST['a']))) 不起作用
$jscode=$_POST['jscode']==""?0:$_POST['jscode'];
这是可以的。下面这一条是原来的就不起作用
$jscode=!(isset($_POST['jscode']))?0:$_POST['jscode'];