刚学 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. XML数据格式简介

    ---------------siwuxie095                             XML 简介     XML,即 可扩展标记语言(Extensible Markcup La ...

  2. c++ list 容器

    List vector在STL中是一个双向链表,它的内部结构和vector 或 deque截然不同.主要有以下几点: 1.List不支持随机存取.list没有提供下标操作符和at()的访问. 2.任何 ...

  3. PHPMailer fe v4.11 For Thinkphp 3.2

    PHPMailer fe v4.11 For Thinkphp 3.2,你值得拥有! 今晚用TP3.2开发一个东西的时候需要邮件发送功能,理所当然的想到了PHPMailer.于是有了此文!------ ...

  4. SpringMVC Controller 的简单应用

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  5. 单机配置tomcat 8 集群

    如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块. 本文当采用tomcat默认集群配置(<Cluster className="org. ...

  6. xgboost dmatrix中的 weight的重要性

    https://stackoverflow.com/questions/35983565/how-is-the-parameter-weight-dmatrix-used-in-the-gradien ...

  7. 2.8.2 并发下的ArrayList,以及源码分析

    package 第二章.并发下的ArrayList; import java.util.ArrayList;import java.util.List; /** * Created by zzq on ...

  8. HDU 6055 Regular polygon (暴力)

    题意,二维平面上给N个整数点,问能构成多少个不同的正多边形. 析:容易得知只有正四边形可以使得所有的顶点为整数点.所以只要枚举两个点,然后去查找另外两个点就好. 代码如下: #pragma comme ...

  9. MVC - Routing - 网址路由

    1. Routing  : 路由 主要是比对通过浏览器传来的http要求与响应适当的网址给浏览器. @Html.ActionLink("关于","About", ...

  10. lda:变分的推导

    lda,latent diriclet allocation,是一个最基本的bayesian模型.本文要研究lda基于变分的推导方法.意义是重大的. 一.符号的定义 : the number of t ...