我们在设计提交空的评论时依然可以写入数据库,并在页面显示出来。这显然是不合理的,所以需要我们加入空值判断

可以修改代码,添加些判断:

复制代码代码如下:
  if(empty($_POST['name'])){
  echo "俗话说的好,雁过留声人过留名<br />";
 }

elseif(empty($_POST['comment'])){
  echo "矮油,多说几句吧~";
 }
 else{ // www.jbxue.com
  $sql = "INSERT INTO myblog_comments(blog_id, dateposted, name, comment) VALUES(" . $validentry . ", NOW(), '" . $_POST['name'] . "', '" . $_POST['comment'] . "');";
  mysql_query($sql);
  header("Location: http://". $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME']."?id=" . $validentry);
 }

PHP空值判断

empty 和 isset 虽然都是变量处理函数,它们都用来判断变量是否已经配置,它们却是有一定的区别:empty还会检测变量是否为空、为零。当一个变量值为0,empty 认为这个变量同等于空,即相当于没有设置。

复制代码代码如下:
<?php
/*比如检测 $id 变量,当 $id=0 时,用empty 和 isset 来检测变量 $id 是否已经配置,两都将返回不同的值—— empty 认为没有配置,isset 能够取得 $id 的值:*/
    $id=0; // www.jbxue.com
    empty($id)?print "It's empty .":print "It's $id ."; 
      //结果:It's empty .
    print "<br>";
    !isset($id)?print "It's empty .":print "It's $id .";
      //结果:It's 0 .
?>

总结PHP中,“NULL” 和 “空” 是2个概念。

isset  主要用来判断变量是否被初始化过
empty  可以将值为 “假”、“空”、“0”、“NULL”、“未初始化” 的变量都判断为TRUE
is_null  仅把值为 “NULL” 的变量判断为TRUE
var == null  把值为 “假”、“空”、“0”、“NULL” 的变量都判断为TRUE
var === null  仅把值为 “NULL” 的变量判断为TRUE
所以我们在判断一个变量是否真正为“NULL”时,大多使用 is_null,从而避免“false”、“0”等值的干扰。

最新文章

  1. Xamarin对Visual Studio用户免费 Xamarin SDK将开源
  2. LigerUI 表单和表格中的combobox如何初始化值
  3. C#压缩文件夹
  4. Scala深入浅出实战经典之 List的foldLeft、foldRight、sort操作代码实战
  5. xcode下编译.a文件的路径
  6. 使用apt-mirror建立本地debian仓库源
  7. 使用Log4Net发送日志邮件 (转载)
  8. SwipeListView 具体解释 实现微信,QQ等滑动删除效果
  9. ListView 水平滑动 水平和竖直滑动
  10. 关于typedef之四种用途 和 两个陷进
  11. Divide Groups(分组)
  12. HDOJ-2009 求数列的和
  13. python os模块 常用命令
  14. .net Core 依赖注入 Add********说明
  15. img标签插入图片返回403,浏览器可以直接打开
  16. 安装SQL Server提示&ldquo;等待数据库引擎恢复句柄失败&rdquo;
  17. 并发工具类(二)同步屏障CyclicBarrier
  18. React.js基础入门
  19. 8-1 Stacks of Flapjacks UVA120
  20. Hystrix已经停止开发,官方推荐替代项目Resilience4j

热门文章

  1. Windows上常见的集中布尔类型的比较
  2. PHP基本语法(一)
  3. python学习(4)
  4. SIGGRAPH
  5. android104 帧动画,补间动画,属性动画
  6. Android(java)学习笔记211:采用httpclient提交数据(qq登录案例)
  7. 第九篇:web之前端之web上传文件的方式
  8. .net+easyui--combobox
  9. Hashtable和HashMap类
  10. spring中@param和mybatis中@param使用区别