刚学 PHP ,一些基础还不太牢固,边实践边记录。

about NULL

$class_name = null;

语句结束后,$class_name 是空,没有,什么都没有的“空”。用 is_null($class_name) 来判断就是“是”,用 empty 来检测也是“是”,来看下边的过程和结果:

$class_name = null;

echo 'Is Empty: '.empty($class_name).'<br/>';
echo 'Is set: '.isset($class_name)."<br/>";
echo 'Is: '.$class_name."<br/>";
echo "Is null: ".is_null($class_name);

换一下,如果 $class_name = ""; 呢,看下边结果

下边,给 $class_name 赋值看看,先给个数字 1

再给个字符串 “1”

给个数字 0

字符串 “0”

贴近现实,给个 “abcdefg”

总结一下:

如果想像 C# 那样,判断一个“变量”不要是空,而且不要是空字符串,是有值的,empty() 似乎并不合适,因为它会把 0 或者 "0" 也认为是 empty,似乎 isset 或直接 if( $class_name )更合适一点;

小心!unset()之后,直接 echo $class_name 或者 echo is_null($class_name) 会出错,但 empty($class_name)会运行,并且为 1;

  null "" 1 "1" 0 "0" string
Empty() 1 1     1 1  
isset   1 1 1 1 1 1
Is / Value     1 1 0 0 string
is_null 1            

补:

想判断数字?先判断 isset,然后判断 is_numeric,is_numeric 会把字符串、十六进制等“试着”转换成数字,能转成就是“是”,转不了就是“否”。这样可以避免当 0 也是合法数字时,if($变量)会出现的逻辑遗憾

PHP7 关于变量的基本判断的更多相关文章

  1. 【转】shell编程下 特殊变量、test / [ ]判断、循环、脚本排错

    [转]shell编程下 特殊变量.test / [ ]判断.循环.脚本排错 第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~] ...

  2. JS 中对变量类型的判断

    总结:1. 一般简单的使用 typeof 或 instanceof 检测(这两种检测的不完全准确)          2. 完全准确的使用 原生js中的 Object.prototype.toStri ...

  3. javascript中对变量类型的判断

    本文正式地址:http://www.xiabingbao.com/javascript/2015/07/04/javascript-type 在JavaScript中,有5种基本数据类型和1种复杂数据 ...

  4. py定义变量-循环-条件判断

    定义变量 # print('hahaha')name = " let'go "title = '刘伟长得 "很帅"!'conent = '''     let' ...

  5. JavaScript 变量克隆和判断变量类型

    一.变量克隆 在js中经常会遇到将一个变量赋值给一个新的变量这种情况,这对于基本类型很容易去实现,直接通过等号赋值就可以了,对于引用类型就不能这样了.(注:像函数,正则也可以直接通过等号赋值) 这里我 ...

  6. shell编程下 特殊变量、test / [ ]判断、循环、脚本排错

    第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~]# cat /server/scripts/show2.sh #!/bin/ ...

  7. 10_bash_变量_条件判断及运算_sed_循环

    shell编程: 编译器.解释器编程语言:机器语言.汇编语言.高级语言 静态语言:编译型语言 强类型(变量):变量在使用前,必须事先声明,甚至还需要初始化 事先转换成可执行格式 C/C++.C#.Ja ...

  8. python基础教程 变量/输入输出/if判断

    python的运用越来越多.大数据经常被人谈及,数据从何而来?通过各个平台.app.网站数据的收集,分析,过滤,生成报告,这些都可以用python来处理,并且有很多成熟的库可以直接用了.那还不赶紧深入 ...

  9. Swift 常量、变量、条件判断

    - 常量用 let ,变量用 var - // Optional为可选项,// 可用类型值 + ? 代替 let x: Optional = 10 let y: Int? = 5 print(x! + ...

随机推荐

  1. Linux下cacti的安装

    Cacti安装手册 第一步.  Cacti的架构 第二步. Cacti的工作流程 第三步. Cacti简介 1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用r ...

  2. CURL以 POST 请求链接的方式 初始化一个cURL会话来获取一个网页

    /** *POST URL */ function posturl($URL,$data) { $ch = curl_init(); // 创建一个新cURL资源 curl_setopt($ch,CU ...

  3. Part5核心初始化_lesson4---关闭mmu

    1.ARM存储体系 2.cache 3.虚拟地址 那么谁来完成把虚拟地址转换成物理地址呢? 4.这个工作就由MMU来转换!! 5.关闭MMU和cache 他们都是通过cp15协处理器来控制的!应该在A ...

  4. 智能IC卡中的文件系统

    1.文件系统是COS的重要模块之一,它负责组织.管理.维护IC卡内存储的所有数据. 文件系统的设计和实现既是COS系统中最灵活.最有个性的部分,也是对系统整体结构影响最大的模块之一. 2.在IC卡内, ...

  5. HUSTSE2017级5班3组小组JIRA软件使用体验看法汇总--未订正版

    小组JIRA软件使用体验看法汇总 小黄 JIRA还是比较方便的,在项目组合管理阶段,可以让团队同时按时发布,也可以让计划变得更容易和快捷,可以跟踪团队的重要计划,清楚的了解项目的进度. 看了JIRA的 ...

  6. CSS 中的 px、em、rem 和 vh

    区分 px:Pixel.像素. em:相对长度单位.继承父级元素的 font-size,值是相对于父级元素font-size的倍数. rem:Root em.相对于根元素(即 <html> ...

  7. (转)初试konckout+webapi简单实现增删改查

    原文地址:http://www.cnblogs.com/flykai/p/3361064.html 前言 konckout.js本人也是刚刚接触,也是初学,本文的目的是使用ko和asp.net mvc ...

  8. linux下SVN服务器配置

    SVN服务器配置 1. 安装svn服务 yum install subversion 2. 新建一个目录用于存储SVN所有文件 mkdir /home/svn 3. 创建项目 在上面创建的文件夹中为项 ...

  9. EBS登陆界面个性化

    把完整资料贴出来 Set the profile option Local Login Mask (FND_SSO_LOCAL_LOGIN_MASK). (This profile option is ...

  10. C# -- 泛型(3)

    简介: 前两篇文章讲了关于泛型的一些基础,下面笔者通过这篇文章来给刚刚接触泛型的朋友介绍一下 <1>.原理性的东西----” 泛型的协变和逆变 “ <2>.以及常用的接口--- ...