热搜:NVER node 开发 php

isset和empty的问题

2024-07-24 12:45:01
isset和empty的问题

一个计算器小程序,红字部分用empty,结果显示正常,换成isset ,就不正常了.isset和empty在这个例子中有啥区别了,为什么会出现这种情况?
<?php
// 接收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;
}
}
 ?>
 nbsp;html>
 
 


 
  计算器小程序
 
 
 

结果: <?php echo $r ?>


 

  数字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