关于php编程的一些小技巧
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编程的一些小技巧的更多相关文章
- 25条div+CSS编程提醒及小技巧整理
1.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值. 2.同一个的class选择符可以在一个文档中重复出现,而id选择符却只能出现一次:对一个标签同时使用clas ...
- cocos2d-x编程的一些小技巧
转自:http://blog.sina.com.cn/s/blog_61d2d3f50100zgz8.html 一. CC_ASSERT 或 CCAssert宏 Assert - 断言 使用断言可 ...
- Shellcode编程小技巧
工作需要,需要注入其他程序监控一些东西,检测到的数据通过WM_COPY 消息发送给显示窗体.(大体是这样的还没定稿) ##1 选择一个框架 ## tombkeeper/Shellcode_Templa ...
- 使用IntelliJ IDEA的小技巧快乐编程(1)
前言 我很喜欢和别人讨论一些问题,有时候,在公司里,讨论这样的问题需要演示代码.常常会碰到的一种情况是(根据我的记忆这半年多来至少超过了10次),别人会打断你的演示,抛出一个问题:等等,你刚才的操作是 ...
- Java编程小技巧(1)——方法传回两个对象
原文地址:Java编程小技巧(1)--方法传回两个对象 | Stars-One的杂货小窝 题目是个伪命题,由Java语法我们都知道,方法要么返回一个对象,要么就不返回 当有这样的情况,我们需要返回两个 ...
- 学会这些 pycharm 编程小技巧,编程效率提升 10 倍
PyCharm 是一款非常强大的编写 python 代码的工具.掌握一些小技巧能成倍的提升写代码的效率,本篇介绍几个经常使用的小技巧. 一.分屏展示 当你想同时看到多个文件的时候: 1.右击标签页: ...
- iOS:小技巧(不断更新)
记录下一些不常用技巧,以防忘记,复制用. 1.获取当前的View在Window的frame: UIWindow * window=[[[UIApplication sharedApplication] ...
- 一些Python的惯用法和小技巧:Pythonic
Pythonic其实是个模糊的含义,没有确定的解释.网上也没有过多关于Pythonic的说明,我个人的理解是更加Python,更符合Python的行为习惯.本文主要是说明一些Python的惯用法和小技 ...
- ( 译、持续更新 ) JavaScript 上分小技巧(一)
感谢好友破狼提供的这篇好文章,也感谢写这些知识点的作者们和将他们整理到一起的作者.这是github上的一篇文章,在这里本兽也就只做翻译,由于本兽英语水平和编程能力都不咋地,如有不好的地方也请多理解体谅 ...
随机推荐
- Oracle Sales Cloud:管理沙盒(定制化)小细节1——利用公式创建字段并显示在前端页面
Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的CRM管理系统.由于 Oracle 销售云是基于 Oracle 云环境的,它与传统的管理系统相比,显著特点之一便 ...
- Dynamics CRM 2015-Sign Out选项
If you are using CRM Online - there is a sign out button in the upper right corner (in the web versi ...
- [转]ASP.NET应用程序生命周期趣谈(四) HttpHandler和页面生命周期
在之前的三篇文章中,我们还算简明扼要的学习了asp.net的整个生命周期,我们知道了一个Request进来以后先去ISAPI Filter,发现是asp.net程序后又ASPNET_ISAPI.dll ...
- Android 网络框架之Retrofit2使用详解及从源码中解析原理
就目前来说Retrofit2使用的已相当的广泛,那么我们先来了解下两个问题: 1 . 什么是Retrofit? Retrofit是针对于Android/Java的.基于okHttp的.一种轻量级且安全 ...
- 关于JS交互--调用h5页面,点击页面的按钮,分享到微信朋友圈,好友
关于js交互,在iOS中自然就想到了调用代理方法 另外就是下面的,直接上代码了: 如果你的后台需要知道你的分享结果,那么,就在回调里面调用上传到服务器结果的请求即可
- h5上传图片及预览
第一次做图片上传,记录一些问题. 1,图片的base64编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址.而网页上的每一个图片,都是需要消耗一个http请求下载而来的,使用base ...
- 人工智能AI-机器视觉CV-数据挖掘DM-机器学习ML-神经网络-[资料集合贴]
说明:这个贴用于收集笔者能力范围内收集收藏并认为有用的资料,方便各方参考,免去到处找寻之苦,提升信息的交叉引用价值.仅供参考,不作为必然的推荐倾向.如涉及版权等问题请相关人员联系笔者,谢谢. |博客| ...
- redis数据结构存储SDS设计细节(redis的设计与实现笔记)
redis虽说是用C语言开发的,但是redis考虑了性能.安全性.效率性.功能等要,redis底层存储字符串实现,自己实现了名为简单动态字符串(Simple dynamic string)简称SDS的 ...
- MySQL 导入数据
MySQL中可以使用两种简单的方式来导入MySQL导出的数据. 使用 LOAD DATA 导入数据 MySQL 中提供了LOAD DATA INFILE语句来插入数据. 以下实例中将从当前目录中读取文 ...
- mysql初级命令
修改本地mysql root密码 #mysqladmin -uroot -p原密码 password 现密码 #mysqladmin -uroot -p passwd password nowwd ...