已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > HTML/CSS/JS

标题: PHP问题

作者: @Ta

时间: 2012-05-15

点击: 4088

<?php  
echo "<title>计算结果</title>";
&a=&_POST["i"];
&b=&_POST["ii"];
if(isset(&a,&b)){
echo "抱歉!所有值不能为空!";
}elseif(empty(&a)){
echo "抱歉!第一个值不能为!";
}elseif(empty(&b)){
echo "抱歉!第二个值能为空!";
}else{&aa=&a+&b;
&bb=&a-&b;
&cc=&a*&b;
echo "分别计算结果:";
echo "<br>";
echo "加法:&a+&b=&aa";
echo "<hr>";
echo "减法:&a-&b=&bb";
echo "<hr>";
echo "乘法:&a*&b=&cc";
}
?>
无论输入框内有值与或者无值都显示“所有值不能为空”怎样解决!这里&符号代表变量符。

[隐藏样式|查看源码]


『回复列表(12|隐藏机器人聊天)』

1. if(($a==NULL) or ($b==NULL)
{
echo
'所有输入框不能为空!';
}
(/@Ta/2012-05-15 17:42//)

2. 谢谢了!在来试一下
(/@Ta/2012-05-15 18:01//)

3. 还是不行!
(/@Ta/2012-05-15 19:04//)

4. 干嘛写哪么麻烦?if(empty(&a)){echo "第一个不能为空";}else{if(empty(&b)){echo "第二个不能为空";}else{&cc=&a+&b; echo "{&a}+{&b}={&cc}";}}
(/@Ta/2012-05-15 19:16//)

5. if(empty($a)&&empty($b)){echo '全空';}elseif(empty($a){echo '$a空';}elseif(empty($b)){echo '$b空';}else{echo '这两家伙都有东西,奇怪';}这样写就好了
(/@Ta/2012-05-15 22:22//)

6. 如果值存在 isset返回ture 所以、、、
(/@Ta/2012-05-15 22:42//)

7. @五角圆星 @抹掉内记忆 isset()当变量存在时返回true。很明显$a和$b总是存在的,即使它们内容为空但还是存在的(你不能说空瓶子不存在吧),所以isset()总是返回true,所以if()语句总是成立,所以无论如何都输出第一条。
(/@Ta/2012-05-16 09:27//)

8. @arox  一楼不行吗?
(/@Ta/2012-05-16 11:05//)

9. @郑锋 不知道了,从不这么用
(/@Ta/2012-05-16 18:09//)

10. @老虎会游泳 @摸掉内记忆 是的 只要表单提交了这个变量都不会是null 且只要被赋值了isset都返回ture 应该这样写if($a=="" or $b==""){...}
(/@Ta/2012-05-16 23:15//)

11. @五角圆星 
事实上是因为它写了
$a=…;
所以$a肯定是存在的。
$a=NULL;
var_dump(isset($a));
//输出boolean TRUE
$a是存在的,虽然它是NULL
而isset()是用来判断变量是否存在的,而不是变量是否为NULL
(/@Ta/2012-05-16 23:32//)

12. 我实验之后发现我错了,五角圆星是对了。
isset()对值为NULL的变量返回false。
(/@Ta/2012-05-16 23:39//)

回复需要登录

9月28日 03:56 星期天

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1