首页 > 编程语言 >PHP 判断数组是否为空的方法

PHP 判断数组是否为空的方法

时间:2023-04-04 15:32:52浏览次数:39  
标签:初始化 null 为空 NULL 判断 数组 PHP empty 变量


1. isset功能:判断变量是否被初始化

说明:它并不会判断变量是否为空,并且可以用来判断数组中元素是否被定义过

注意:当使用isset来判断数组元素是否被初始化过时,它的效率比array_key_exists高4倍左右


<?php 
$a = ''; 
$a['c'] = ''; 
if (!isset($a)) echo '$a 未被初始化' . ""; 
if (!isset($b)) echo '$b 未被初始化' . ""; 
if (isset($a['c'])) echo '$a 已经被初始化' . ""; 
// 显示结果为 
// $b 未被初始化 
// $a 已经被初始化


2. empty功能:检测变量是否为”空”

说明:任何一个未初始化的变量、值为 0 或 false 或 空字符串”” 或 null的变量、空数组、没有任何属性的对象,都将判断为empty==true

注意1:未初始化的变量也能被empty检测为”空”

注意2:empty只能检测变量,而不能检测语句


<?php 
$a = 0; 
$b = ''; 
$c = array(); 
if (emptyempty($a)) echo '$a 为空' . ""; 
if (emptyempty($b)) echo '$b 为空' . ""; 
if (emptyempty($c)) echo '$c 为空' . ""; 
if (emptyempty($d)) echo '$d 为空' . "";


3. var == null功能:判断变量是否为”空”

说明:值为 0 或 false 或 空字符串”” 或 null的变量、空数组、都将判断为 null

注意:与empty的显著不同就是:变量未初始化时 var == null 将会报错。

<?php 
$a = 0; 
$b = array(); 
if ($a == null) echo '$a 为空' . ""; 
if ($b == null) echo '$b 为空' . ""; 
if ($c == null) echo '$b 为空' . ""; 
// 显示结果为 
// $a 为空 
// $b 为空 
// Undefined variable: c


4. is_null功能:检测变量是否为”null”

说明:当变量被赋值为”null”时,检测结果为true

注意1:null不区分大小写:$a = null; $a = NULL 没有任何区别

注意2:仅在变量的值为”null”时,检测结果才为true,0、空字符串、false、空数组都检测为false

注意3:变量未初始化时,程序将会报错


<?php 
$a = null; 
$b = false; 
if (is_null($a)) echo '$a 为NULL' . ""; 
if (is_null($b)) echo '$b 为NULL' . ""; 
if (is_null($c)) echo '$c 为NULL' . ""; 
// 显示结果为 
// $a 为NULL 
// Undefined variable: c


5. var === null功能:检测变量是否为”null”,同时变量的类型也必须是”null”

说明:当变量被赋值为”null”时,同时变量的类型也是”null”时,检测结果为true

注意1:在判断为”null”上,全等于和is_null的作用相同

注意2:变量未初始化时,程序将会报错

总结:

PHP中,”NULL” 和 “空” 是2个概念。

isset 主要用来判断变量是否被初始化过

empty 可以将值为 “假”、”空”、”0″、”NULL”、”未初始化” 的变量都判断为TRUE

is_null 仅把值为 “NULL” 的变量判断为TRUE

var == null 把值为 “假”、”空”、”0″、”NULL” 的变量都判断为TRUE

var === null 仅把值为 “NULL” 的变量判断为TRUE

注意:在判断一个变量是否真正为”NULL”时,大多使用 is_null,从而避免”false”、”0″等值的干扰。

标签:初始化,null,为空,NULL,判断,数组,PHP,empty,变量
From: https://blog.51cto.com/huangama8/6168744

相关文章

  • JavaScript:数组删除指定元素
    1.shift()方法用于删除数组中的第一个元素。注:此方法会改变数组的长度letarr=[1,2,3]arr.shift()//删除1//arr为[2,3]2.pop()方法用于删除数组中最后一个元素注:此方法会改变数组的长度letarr=[1,2,3]arr.pop();//删除3//arr为[1,2]3.splice()方法用于......
  • 力扣-数组-滑动窗口
    题目顺序209长度最小的子数组,904水果成篮解题思路1.滑动窗口求解的题目中,关键词为”求解连续“2.暴力解法是双重for循环,相当于对滑动窗口的起始和终止点都遍历3.滑动窗口求解是,只遍历终止点,当sum符合条件时,start++,向前一步缩小窗口4.终止条件是终止点end遍历完  1c......
  • 2023年php面试题
                                      Php面试题1、isset和empty的区别?Isset测试变量是否被赋值,如果这个变量没被赋值,则返回false,empty是判断变量是否为空,当赋值为0,null,’’,返回true为真。他们之间最大的区别就是当一个变量被赋值0时,empty判......
  • js 递归遍历树形结构数据,返回新的数组
    工作中,我们经常会遇到这样的情况:后端返回的数组,只需要取name、value生成新的数组,或者是将某个属性名修改,生成新的数组。递归是一种常见的解决问题的方法,即把问题逐渐简单化。“递归”的基本思想是:自己调用自己。实例如下handleDg(arrs,that){arrs.map((item,index)......
  • centos7/centos8 PHP7.2/php7.3/php7.4 以上版本 源码安装 编译
    yumupdate  1、安装依赖包[root@centos7_4~]#yum-yinstallphp-mcryptlibmcryptlibmcrypt-devel autoconf freetypegdlibmcryptlibpnglibpng-devellibjpeglibxml2libxml2-develzlibcurlcurl-develre2cnet-snmp-devellibjpeg-develphp-ldapopenl......
  • PHP 实现动态实时输出
    #设置执行时间不限时 set_time_limit(0);#清除并关闭缓冲,输出到浏览器之前使用这个函数。ob_end_clean();#控制隐式缓冲泻出,默认off,打开时,对每个print/echo或者输出命令的结果都发送到浏览器。ob_implicit_flush(1);header(“Content-type:text/html;charset=utf-8″);ob_......
  • 动态数组简介
                        动态数组定义:动态数组是指在声明时没有确定数组大小的数组,即忽略圆括号中的下标;当要用它时,可随时用ReDim语句重新指出数组的大小。使用动态数组的优点是可以根据用户需要,有效利用存储空间。特点数组到底应该有多大才......
  • 最长连续序列(并查集、数组)、复原 IP 地址(字符串、回溯)、删除链表的倒数第 N 个结
    最长连续序列(并查集、数组)给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为O(n)__的算法解决此问题。示例1:输入:nums=[100,4,200,1,3,2]输出:4解释:最长数字连续序列是[1,2,3,4]。它的长度为4......
  • 最小覆盖子串(哈希表、字符串)、两数之和(数组、哈希表)、二叉树的层序遍历 II(树、广
    最小覆盖子串(哈希表、字符串)给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。**注意:**如果s中存在这样的子串,我们保证它是唯一的答案。示例1:输入:s="ADOBECODEBANC",t="ABC"输出:"B......
  • 字符串和数组类型详解
    一.字符串1.正常的字符串我们使用单引号,或者双引号包裹2.注意转义字符\\'转义打印一个单引号\n换行\t表格打印\u4e2d\u####Unicode字符\x41Ascll字符3.多行字符串的编写``,这个符号在tab键上面,英文键盘varmsg=`......