1. NULL,0和空的区分判断

(1)0与空的区分

<?php  $a = 0;if($a==''){ echo '此判断条件不能区分';}else{ echo '此判断条件可以区分';} ?>

<?php $a = 0;if($a===''){ echo '此判断条件不能区分';}else{ echo '此判断条件可以区分';} ?>

<?php $a = 0;$b = '';if(empty($a) && empty($b)){ echo '此判断条件不能区分';}else{ echo '此判断条件可以区分';}? >

<?php $a = 0;$b = '';if((!is_null($a)) && (!is_null($b))){echo '此判断条件不能区分';}else{echo '此判断条件可以区分';} ?>

<?php $a = 0;$b = '';if(isset($a) && isset($b)){echo '此判断条件不能区分';}else{echo '此判断条件可以区分';} ?>

结论:0与空的区分判断只能使用===。

(2)空与NULL的区分

<?php $a = '';if($a==NULL){echo '此判断条件不能区分';}else{echo '此判断条件可以区分';} ?>

<?php $a = '';if($a===NULL){echo '此判断条件不能区分';}else{echo '此判断条件可以区分';?>

<?php $a = '';$b = NULL;if(empty($a) && empty($b)){echo '此判断条件不能区分';}else{echo '此判断条件可以区分';}? >

<?php $a = '';$b = NULL;if(is_null($a)){echo 1;}else{echo 2;}if(is_null($b)){echo '<br/>a';}else{echo 'b';} ?>

<?php $a = '';$b = NULL;if(isset($a)){echo 1;}else{echo 2;}if(isset($b)){echo '<br/>a';}else{echo '<br/>b';} ?>

结论:空与NULL的区分可以使用===,is_null,isset。

(3)0与NULL的区分

<?php $a = 0;if($a==NULL){echo '此判断条件不能区分';}else{echo '此判断条件可以区分';}?>

<?php $a = 0;if($a===NULL){echo '此判断条件不能区分';}else{echo '此判断条件可以区分';}?>

<?php $a = 0;$b = NULL;if(empty($a) && empty($b)){ echo '此判断条件不能区分';}else{echo '此判断条件可以区分';}?>

<?php $a = 0;$b = NULL;if(is_null($a)){ echo 1;}else{echo 2;}if(is_null($b)){echo '<br/>a';}else{echo '<br/>b';}?>

<?php $a = 0;$b = NULL;if(isset($a)){ echo 1;}else{echo 2;}if(isset($b)){echo '<br/>a';}else{echo '<br/>b';}?>

结论:0与NULL的区分可以使用===,is_null,isset。


综上,我们在区分0,空和NULL的时候首选===方法,简单实用快捷。不会因数组转换导致数据类型变化而产生差错。

关于php编程的一些小技巧的更多相关文章

  1. 25条div+CSS编程提醒及小技巧整理

    1.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值. 2.同一个的class选择符可以在一个文档中重复出现,而id选择符却只能出现一次:对一个标签同时使用clas ...

  2. cocos2d-x编程的一些小技巧

    转自:http://blog.sina.com.cn/s/blog_61d2d3f50100zgz8.html 一.   CC_ASSERT 或 CCAssert宏 Assert - 断言 使用断言可 ...

  3. Shellcode编程小技巧

    工作需要,需要注入其他程序监控一些东西,检测到的数据通过WM_COPY 消息发送给显示窗体.(大体是这样的还没定稿) ##1 选择一个框架 ## tombkeeper/Shellcode_Templa ...

  4. 使用IntelliJ IDEA的小技巧快乐编程(1)

    前言 我很喜欢和别人讨论一些问题,有时候,在公司里,讨论这样的问题需要演示代码.常常会碰到的一种情况是(根据我的记忆这半年多来至少超过了10次),别人会打断你的演示,抛出一个问题:等等,你刚才的操作是 ...

  5. Java编程小技巧(1)——方法传回两个对象

    原文地址:Java编程小技巧(1)--方法传回两个对象 | Stars-One的杂货小窝 题目是个伪命题,由Java语法我们都知道,方法要么返回一个对象,要么就不返回 当有这样的情况,我们需要返回两个 ...

  6. 学会这些 pycharm 编程小技巧,编程效率提升 10 倍

    PyCharm 是一款非常强大的编写 python 代码的工具.掌握一些小技巧能成倍的提升写代码的效率,本篇介绍几个经常使用的小技巧. 一.分屏展示 当你想同时看到多个文件的时候: 1.右击标签页: ...

  7. iOS:小技巧(不断更新)

    记录下一些不常用技巧,以防忘记,复制用. 1.获取当前的View在Window的frame: UIWindow * window=[[[UIApplication sharedApplication] ...

  8. 一些Python的惯用法和小技巧:Pythonic

    Pythonic其实是个模糊的含义,没有确定的解释.网上也没有过多关于Pythonic的说明,我个人的理解是更加Python,更符合Python的行为习惯.本文主要是说明一些Python的惯用法和小技 ...

  9. ( 译、持续更新 ) JavaScript 上分小技巧(一)

    感谢好友破狼提供的这篇好文章,也感谢写这些知识点的作者们和将他们整理到一起的作者.这是github上的一篇文章,在这里本兽也就只做翻译,由于本兽英语水平和编程能力都不咋地,如有不好的地方也请多理解体谅 ...

随机推荐

  1. O365(世纪互联)SharePoint 之调查列表简单介绍

    前言 SharePoint中为了提供了很多开箱即用的应用程序,比如调查列表就是其中之一,同样,在O365版本里(国际版和世纪互联版本均可),也有这样的调查列表可以供我们使用,而使用起来非常方便和快速, ...

  2. iOS中NSLog输出格式大全

    iOS开发中的输出格式大全: %@                   对象 %d, %i               整数%u                    无符整形%f           ...

  3. Android 从零开始打造异步处理框架

    转载请标明出处:http://www.cnblogs.com/zhaoyanjun/p/5995752.html 本文出自[赵彦军的博客] 概述 在Android中会使用异步任务来处理耗时操作,避免出 ...

  4. mac终端命令

    目录操作 命令名 功能描述 使用举例 mkdir 创建一个目录 mkdir dirname rmdir 删除一个目录 rmdir dirname mvdir 移动或重命名一个目录 mvdir dir1 ...

  5. 基础拾遗------redis详解

    基础拾遗 基础拾遗------特性详解 基础拾遗------webservice详解 基础拾遗------redis详解 基础拾遗------反射详解 基础拾遗------委托详解 基础拾遗----- ...

  6. 分布式搜索引擎Elasticsearch性能优化与配置

    1.内存优化 在bin/elasticsearch.in.sh中进行配置 修改配置项为尽量大的内存: ES_MIN_MEM=8g ES_MAX_MEM=8g 两者最好改成一样的,否则容易引发长时间GC ...

  7. Activity往另外一个Activity传值,Fragment获取另外一个Activity里面的值。

    在oneActivity中实现跳转到MainActivity //intent 用来跳转另外一个MainActivity,bundle传值到MainActivity         Intent Ma ...

  8. [django]django 在apache2上部署静态文件如何加载

    首先找到apache2的conf文件下的httpd.conf,添加如下信息: Alias /static/ E:/wamp/Apache24/www/static/ <Directory E:/ ...

  9. C#基础---Queue(队列)的应用

       Queue队列,特性先进先出. 在一些项目中我们会遇到对一些数据的Check,如果数据不符合条件将会把不通过的信息返回到界面.但是对于有的数据可能会Check很多条件,如果一个数据一旦很多条件不 ...

  10. MyBatis源码分析-SQL语句执行的完整流程

    MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生Map使用简 ...