isset和empty的问题

php中文网
发布: 2016-06-23 13:15:36
原创
1065人浏览过

一个计算器小程序,红字部分用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;
}
}
 ?>
 nbsp;html>
 
 


 
  计算器小程序
 
 
 

结果:


 

  数字1:
 

  数字2:
 

  运算符:
  +
-
*
/



 


 
 

AI建筑知识问答
AI建筑知识问答

用人工智能ChatGPT帮你解答所有建筑问题

AI建筑知识问答 22
查看详情 AI建筑知识问答


回复讨论(解决方案)

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

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号