Isset、empty、count、is_null的比较
1、empty判断变量是否为空,
先把变量转为布尔值再返回;对变量(字符串、数组等)赋值为一切为空的值、或者未定义的变量都返回true,即判断为空,比如null,‘ ’,0,array(),false,
2、isset判断变量是否定义,
对赋值为null 和 未定义的变量返回false,即判断未定义;其他情况,只要变量做了定义声明,统统返回rue,即判断已经定义,无论赋值与否,或者赋值为‘’,0,array(),false等,
3、count对变量值计数,
对赋值为null 和 未定义的变量计数为0,空数组也为0。
4、当变量未定义 或 赋值为 null 时,is_null()返回 true,及判断为 null值;其他情况皆为 false,即判断非null值。
综合来看
(1)如果变量未定义,empty 返回 true ,即判断为空;isset 返回false ,即判断未定义;count 返回0,即个数为0;
(1.1)唯独count会报警告错误。
(2)如果变量赋值null,结果同(1);可见,php变量赋值null,就可以看做清空以及销毁。
(3)is_null ()是最基础的判断。
(4)在php手册里面,对于他们解析是:empty,isset 是一个语言结构而非函数。
empty、count 就变量类型来看
(1)数组:定义为空数组 array();$emptyArray = array();empty 返回 true ,即判断为空;count 返回0,即个数为0。特别强调,array(0)、array(false)、array(‘’)、array(null)等元素特殊的数组,和非特殊元素的数组是一样的。
(2)其他变量:当赋值为null,‘ ’,0,false等空值时,empty返回true,即判断为空,count计数1。
特别的是:0 和‘0’在PHP里面都是判断都是false。
Isset、empty、count、is_null的比较的更多相关文章
- PHP判断变量是否存在及函数isset() 、empty()与is_null的区别
一.举例说明 A.如何判断一个变量是否定义? <?php // 假设不存在$test 变量 if (isset($test)) { echo '$test 已经set', '<br/> ...
- empty,is_null,isset返回值的比较
empty,is_null,isset返回值的比较: 变量 empty is_null isset$a="& ...
- php中函数 isset(), empty(), is_null() 的区别,boolean类型和string类型的false判断
php中函数 isset(), empty(), is_null() 的区别,boolean类型和string类型的false判断 实际需求:把sphinx返回的结果放到ssdb缓存里,要考虑到sph ...
- 判断变量是否不为空,函数isset()、!empty()与!is_null()的比较
转载:https://blog.csdn.net/qq_38812954/article/details/79581785 判断变量的值,尤其是判断他们是否不为空,我们有以下4种方法: if(isse ...
- PHP中empty,is_null,isset的区别
有时候分不清这几个的区别,特此记录,以备不时之需 isset 判断变量是否已存在 empty 判断变量是否为空或为0 is_null 判断变量是否为NULL 变量 empty is_null isse ...
- PHP isset()、empty()、is_null()的使用区别详解
PHP的isset()函数 一般用来检测变量是否设置 格式:bool isset ( mixed var [, mixed var [, ...]] ) 功能:检测变量是否设置 返回值: 若变量不存在 ...
- 2018/03/18 isset、empty、is_null的区别
在平常的工作中,判断一个值是否为空的情况时,会直接使用 if ($var) 这种形式,有时也会使用这三个函数进行比较,但是当时也没有很深入的学习. -- 还是通过实例来判断这几个的用法和场景 首先定义 ...
- php之isset empty is_null的区别
isset:当前变量没有设置(即不存在),或者变量设置为null的时候,返回true,设置为“”或者0 都是返回的true empty:变量不存在,设置值为null,设置为“”,设置为0 都返回tru ...
- isset()、empty()、is_NULL()的区别
1,isset():变量不存在,或变量为null,返回false,否则返回true: 2,empty():变量不存在,或变量为null,返回true,另外"".0."0& ...
- isset ,empty,is_null 区别
<?php $a = ''; $b = ""; $c = null; $d = array(); $e = ' '; $f = 0; $g = "0"; ...
随机推荐
- opencl(5)缓存对象
//创建的内存对象由内核访问,将缓冲区作为参数传递给内核 1:创建缓存对象 cl_mem clCreateBuffer( cl_context context, //上下文 cl_mem_flags ...
- MySQL 8.0 yum安装和配置
MySQL 8.0 centos7.5 x86_64 一.yum安装 1.先卸载机器和mysql有关的东西,有的安装了mariab-lib,会对安装有干扰,卸载了它. [root@localhost ...
- Windows学习Nodejs、Npm和VUE
前言 本文主要以开发的角度讲解Node.js,Npm和Vue. Node.js学习 什么是Node.js Node.js简单来说就是一个IISExpress,提供一个前端Html的独立运行环境. 安装 ...
- hadoop知识整理(2)之MapReduce
之前写的关于MR的文章的前半部分已丢. 所以下面重点从3个部分来谈MR: 1)Job任务执行过程,以及主要进程-ResourceManager和NodeManager作用: 2)shuffle过程: ...
- 《刻意练习之C#》-0016- C#预处理器指令
预处理指令 这些指令/命令不会转换为可执行代码,但会影响编译过程的各个方面:列如,可以让编译器不编译某一部分代码等. C#中主要的预处理指令 #define和#undef #define指令定义: # ...
- 05.Java面向对象
一.面向对象基本概念 面向对象的特征 封装 封装是指利用抽象数据类型将数据(属性)和对数据的操作(方法)包装起来,把对象的属性和动作结合成一个独立的单位,并尽可能隐蔽对象的内部处理细节. 继承 一个类 ...
- 【论文阅读】Harris角点算法
#coding=utf-8 from PIL import Image import numpy as np from scipy.ndimage import filters import matp ...
- TensorFlow从0到1之浅谈感知机与神经网络(18)
最近十年以来,神经网络一直处于机器学习研究和应用的前沿.深度神经网络(DNN).迁移学习以及计算高效的图形处理器(GPU)的普及使得图像识别.语音识别甚至文本生成领域取得了重大进展. 神经网络受人类大 ...
- git添加所有新文件
git add -A 提交所有变化 git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new) git add . 提交新文件(new)和被修改(mod ...
- windows server2012 安装SQL SERVER 2016环境监测出错
Windows Server 2012 R2 安装SQL Server 2016 顺序为:KB2919442 ——> KB2919355 ——> SQL Server 2016 并且还要安 ...