欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

isset和empty的问题

程序员文章站 2022-05-10 11:09:35
...
一个计算器小程序,红字部分用empty,结果显示正常,换成isset ,就不正常了.isset和empty在这个例子中有啥区别了,为什么会出现这种情况?
// 接收num1和num2
if( empty($_POST)){
$r='请输入数字';
}else{
$num1 = isset($_POST['num1']) ? (int)$_POST['num1'] : 0;
$num2 = isset($_POST['num2']) ? (int)$_POST['num2'] : 0;
// 接收运算符
$yunsuan=isset($_POST['yunsuan'])?$_POST['yunsuan']:'+';

switch ($yunsuan) {
case '+':
$r=$num1+$num2;
break;
case '-':
$r=$num1-$num2;
break;
case '*':
$r=$num1*$num2;
break;
case '/':
$r=$num1/$num2;
break;
default:
$r='请输入数字';
break;
}
}
?>




计算器小程序


结果:



数字1:


数字2:


运算符:
+
-
*
/







回复讨论(解决方案)

http://www.jb51.net/article/24666.htm

if(empty($_POST)){



if(!isset($_POST)){

效果是一样的

$_POST 是超全局变量,由 php 内核产生,并不管是否是 post 提交
所以 isset($_POST) 恒为真

如果你发现 isset($_POST) 为假了,那就表示你 post 提交的数据的大小超过了 php 的默认值
显然这是严重的错误

isset:是否存在这个变量
empty:变量是否为null

相关标签: isset和empty的问题