首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP:什么是empty()的替代品,其中字符串"0"不被视为空?

在 PHP 中,empty() 函数用于检查一个变量是否为空。然而,有时候我们需要一个替代品,因为 empty() 函数将字符串 "0" 视为空。

以下是一些可以作为 empty() 函数替代品的方法:

  1. 使用 === 比较操作符检查变量是否为空字符串或者数字 0:
代码语言:php
复制
if ($variable === '') {
    // 变量为空字符串
} elseif ($variable === 0) {
    // 变量为数字 0
} else {
    // 变量不为空
}
  1. 使用 strlen() 函数检查字符串长度:
代码语言:php
复制
if (strlen($variable) === 0) {
    // 变量为空字符串
} else {
    // 变量不为空
}
  1. 使用 is_numeric() 函数检查变量是否为数字,并使用 === 比较操作符检查变量是否为 0:
代码语言:php
复制
if (is_numeric($variable) && $variable === 0) {
    // 变量为数字 0
} else {
    // 变量不为数字 0
}

在这些方法中,字符串 "0" 不会被视为空。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JavaScript 中的稀疏数组世界

但遗憾的是,JavaScript 有其他的安排。稀疏数组让我们创建一个空数组:let arr = [] ✅看起来无害,对吧?...即使这些前面的位置是空的,停车场仍然被认为有 10 个位置的容量。...我们的停车管理员 - map() 函数 - 忽略它们,径直走过它们。一个问题一个合理的问题是:如果空白位置被忽略了,为什么它们不被从新数组中删除呢?...然后,map() 函数将继续在数组中的其余元素上操作。这与字符串不同。...嗯,对于过滤而言,这些空槽被视为 undefined!让我们拿到我们更新后的数组并对其应用 filter()。数组在第一个索引处有 undefined,然后是一个空白槽,最后是索引 2 处的值 5。

22230
  • PHP数据结构(八) ——赫夫曼树实现字符串编解码(理论)

    森林中,第二棵树的根节点指向第一棵树的下一个兄弟节点。 1)森林转二叉树的方法 假设F={T1,T2….Tm},当m=0时转成空二叉树。...当一个字符的编码是另一个字符编码的前缀时,称为前缀编码。要对一串字符进行编码时,不应该出现前缀编码,否则解压的时候无法判断是哪个字符。 编码方式:将各字符出现的频率视为其权值,生成赫夫曼树。...2、遍历编码后的字符串,逐个字符进行匹配,因为赫夫曼的编码每个字符是唯一的,因此只有匹配到某一个子串符合编码数组的内容,即暂存该结果。 3、重复2的过程,直至完成整个编码字符串的遍历。...7、empty($content) 判断$content是否为空,以下内容会被认为是空:array()、’’、0、0.0、’0’、null、false、$var(声明了变量但是没有赋值)。...因此,empty等价于!isset($var) || $var == false。 用PHP实现通过赫夫曼树进行字符串编码和解码结果如下: ?

    1.3K90

    【PHP快速入门】详细笔记---精简版

    第一个网站 注意事项: php中的变量 echo 显示命令 php注释 整型 布尔变量 字符串 那双引号和单引号有什么区别呢?...神奇的字符串拼接胶水——(.)点,用来拼接字符串。 我们将定界符声明字符串视为双引号一样的功能来看待。 实验举例 双引号解析变量,但是单引号不解析变量 我们将定界符声明字符串视为双引号一样的功能来看待。 的数值即为真。 3,空字符串为假,只要里面有一个空格都算真。 4,字符串的0,也将其看作是假。其他的都为真 5,空数组也将其视为假,只要里面有一个值,就为真。...> 通过上例我们知道了&&与&的区别,||和 |的区别。我们也了解了什么是短路。那我们在什么地方可以用到短路呢?有一些奇怪的写法,我们必须了清楚。其实就是基础语法的再应用。

    10.6K20

    SQL语言元素(一)

    其中一些参数可能是子句或函数,由它们自己的关键字标识。...SQL将此符号视为文字的一部分。请勿在数字中使用逗号或空格。 字符串文字包含一对分隔符,其中包含任何类型的字符串。首选的定界符是单引号字符。...空字符串(")与空字符串是不同的。 空字符串是一个已定义的值,一个不包含字符的字符串,一个长度为0的字符串。 一个零长度的字符串在内部由非显示字符$CHAR(0)表示。...它不会将空字符串值视为非空值。 COALESCE函数从提供的数据中选择第一个非空值。 它将空字符串值视为非空值。...AVG、COUNT和MIN、聚合函数受空字符串值的影响。 MIN函数将空字符串视为最小值,即使存在值为0的行。 MAX和SUM聚合函数不受空字符串值的影响。

    1.4K10

    PHP 类型判断和NULL,空值检查

    PHP是一种宽松类型的编程语言,在函数中对传入的参数值的“类型”以及”值是否为空或者NULL“进行检查是不可缺少的步骤。...、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,都代表了为零。...如果$e是未定义或值为NULLL,$e=NULL,它肯定是空,即empty($e)=true; 如果$e是int类型,$e=0,就相对于数字,0代表为零,即empty($e)=true; 如果$e是string...类型,$e="",相对于字符串,”“就代表为是空,即empty($e)=true; 如果$e是string类型,$e="0",相对于字符串,”0“就代表为是零,即empty($e)=true; 如果$e...是bool类型, $e=false,相对true,false就代表为空,即empty($e)=true; 如果$e是array类型,$a=array(),相对数组来说,没有元素的数据就为空,即empty

    3.4K20

    php isset()和empty()

    (PHP 4, PHP 5, PHP 7) isset — 检测变量是否已设置并且非 NULL isset(mixed$var[,mixed$...] ) :bool 如果 var 存在并且值不是 NULL...4, PHP 5, PHP 7) empty — 检查一个变量是否为空 empty(mixed$var) :bool 当var存在,并且是一个非空非零的值时返回 FALSE 否则返回 TRUE....以下的东西被认为是空的 ,返回TRUE: "" (空字符串) 0 (作为整数的0) 0.0 (作为浮点数的0) "0" (作为字符串的0) NULL FALSE array() (一个空数组) $var...说明 :变量存在且不为空 返回false ;变量存在且为空 返回true ;变量不存在 返回true ; 判断一个变量是否已经声明的时候 可以使用 isset 函数 判断一个变量是否已经赋予数据且不为空...可以用 empty 函数 判断 一个变量存在且不为空 先用 isset 函数 再用 empty 函数

    2.2K10

    php empty()和isset()的区别

    在使用php编写页面程序时,我经常使用变量处理函数判断php页面尾部参数的某个变量值是否为空PHP 在使用 php 编写页面程序时,我经常使用变量处理函数判断...php 页面尾部参数的某个变量值是否为空,开始的时候我习惯了使用 empty() 函数,却发现了一些问题,因此改用 isset() 函数,问题不再。...单从empty()和isset()这两个函数本身来考虑的话会把人弄得更糊涂,换一个角度来它。empty()和isset()的处理对象无外乎未定义变量,0,空字符串。...换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。...同时要注意的是一个 NULL 字节("\0")并不等同于 PHP 的 NULL 常数。 警告: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。

    2K60

    PHP——isset和empty

    前言 对于这两个PHP函数大家肯定都很熟悉,但是其二者的区别又有那些呢? 对比 isset  | 检测变量是否被设置过 1. 变量不存在,返回FALSE 2....变量存在且值不为NULL,返回TURE  empty | 检测变量是否为空 1.变量存在且值为非空非零的值,返回FALSE 2.变量存在且值为空为零时,返回TRUE PHP变量被认为空的几种情况 1."...(空字符串) 2.0 (作为整数的0) 3.0.0 (作为浮点数的0) 4."0" (作为字符串的0) 5.NULL 6.FALSE 7.array() (一个空数组) 8....php $var = 0; // true if (empty($var)) { echo 'true, $var为空'; } // true if (isset($var)) {...>  由此可见,当判断一些变量的时候,不能一味的使用empty或者isset,应该根据实际的情况去使用,如:用户的昵称 如果用户的昵称就是0那你用empty判断不就出问题了嘛,但是如果用户的昵称为空字符串时

    11510

    php基础(二)

    一、PHP基础 1.对于0,空值,'=','=='等的考察 以下代码输出什么 输出b,if中的空值赋值给$num,因此if条件必定为false,还有其他一些大同小异的题目,用=和==判断for循环的,只要把握好基本的概念就行了 2.对于empty、isset概念的考察 isset...()和empty()函数的区别在于,前者只验证一个值是否存在,后者在此基础上还会检验它的值是否非空和非0 注:empty()只检测变量,检测任何非变量的东西都将导致解析错误 isset() 判断一个变量是否已经设置...当设置一个变量值为0,empty() 认为这个变量同等于空,即相当于没有设置 可以定义一个变量,设置值为'',0,null,'aaa'几种不同情况下,用if判断empty、isset看看结果 3.预定义变量...> 手动分割线 在上面提到的内容,其实有一些可以自己去拓展看一下的,比如提到innodb和myisam,前者是使用行锁,后者是使用表锁,那可以去拓展一下,什么是表锁什么事行锁,逐渐增大自己的知识面

    1.1K20

    PHP中变量类型的判断

    ”  例如:  gettype('1');返回的是string  而gettype(1);返回的是integer  php自带的类型判断如下 isset():...//检测变量是 否为数字或数字字符串 is_bool(): // 检测变量是否是布尔型 is_float(): // 检测变量是否是浮点型 和is_double...,is_real()都一样的用法 is_int(): // 检测变量是否是整数is_integer() 一样的 用法 is_string(): // 检测变量是否是字符串...检测变量是否为 NULL 值是否是NULL大小写敏感 PHP empty、isset、isnull的区别 empty 如果 变量 是非空或非零的值,则 empty() 返回 FALSE。...换句话说,”"、0、”0″、NULL、FALSE、array()、var $var、未定义;以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。

    4.5K10

    对主流编程语言的吐槽

    如果 x 作为字符串包含字符 1,那么 x+1 将产生字符串 11,而 x-1 则会产生数字 0。谁还会记得 false、 null、NaN 以及 undefined 之间的区别呢?...它们听起来很像,但 JavaScript 为什么非要对此进行区分?为什么不能把它们合并起来?...3.PHP PHP 给的感觉是一位单纯乖巧型女生,至于原因 PHP 相比其他语言更简单,PHP 性能足够好,热部署、易修改,我们也不用那么费心啦~ PHP 其实并不能算是真正的计算机语言,而更像是一款用于向静态...虽然还有更多功能,但总体来看 PHP 的基本作用就是对我们提取自数据库的字符串进行粘接。 但争议归争议,大多数 Web 仍然由 PHP 构建而成。...生物学家与经济学家将 Python 视为最强语言,有些人甚至建议在股票与债 券的说明文件中添加 Python 代码,这样银行家们就能够通过 Python 看懂其中真正的含义——而不被那帮律师骗子所蒙蔽。

    92280

    如何理解php是弱类型语言

    所以解释了 empty(null)=true,isset(null)=false ,isset('')=true) 2.【0 ; "0" ; "" ; false 】:这四个为存在,php底层是开辟...zval空间存储,有value,有type 结论二:从底层结构理解 理解了上边结论一,那么下边的结论就容易理解了,还不太清楚的可以详细看下【 PHP内核的存储机制(分离/改变)】 其中的【...1.zval结构】,【2.zend\_uchar type】部分 string '0'与 string'' 不相等,(想一下就明白,同类型比较【1个长度】的字符串怎么可能 等于 【0个长度】 的字符串...,zal的value结构里,对string值有len原始记录的) int 0 却和 string'' 空相等,(非同类形比较,php会做类型转换) string '0' 与 null 不相等...int 0 与 null 相等 说白了,对于php,碰到string "0" 的等式判断的时候,停顿注意一下就行。

    76510

    PHP核心编程知识点

    0开头 十六进制,以0x开头 在内存中的形式:二进制的补码的形式存放的 原码、反码和补码的概念 4.浮点型数据 表示形式: 小数形式 指数形式 e不区分大小写 e后必须要有数字 e后必须是整数 在内存中的形式...整数0 浮点数0:0.0 字符串0:’0’ 空字符串:’’ 空类型:NULL 空数组:array() 对象和资源型永远为真!...,只是语法上的一些差异 载入的原理(过程) 退出PHP模式,进入HTML模式 将目标文件内的源代码载入到当前位置(相当于将其中的源码复制到当前载入的位置) 将被载入的源代码先进行预编译然后执行(文件的载入是发生在执行阶段...,那就是形参有默认值的时候 不定参数的函数 基本思想:干脆一个都不定义 func_get_args()用来接收实参的值,是一个索引数组 func_get_arg()用来获取某一个实参的值,索引是从0开始...strchr|strstr strrchr trim str_replace(要替换的字符,替换成什么字符,从哪个字符串替换); 11.时间函数 time:返回一个时间戳 date:将一个时间戳格式化为指定的格式

    3.4K51

    jackson学习之五:JsonInclude注解

    ,但如果类型是AtomicReference,依然会被序列化 NON_EMPTY // null、集合数组等没有内容、空字符串等,都不会被序列化 NON_DEFAULT // 如果字段是默认值,就不会被序列化...类型的成员变量时,如果Optional引用的实例为空,用NON_ABSENT能使该字段不做序列化; Optional是java用来优雅处理空指针的一个特性,本文中不做过多说明,请您自行查阅相关文档; 要让...AtomicReference类型的字段,如果引用值为null,该字段不会被序列化; NON_EMPTY NON_EMPTY好理解,以下情况都不会被序列化: null 空字符串 空集合 空数组 Optional...,那么field0就不会被序列化(NON_EMPTY会过滤掉空集合),如果成员变量上的注解生效,field0就会被序列化(NON_NULL只过滤null,空集合不是null),执行结果如下图,可见是成员变量上的注解生效了...return field0; } 执行修改后的代码,如下图所示,此时用的成员变量field0上的注解就不生效了,而是类注解生效,导致空集合不被序列化: 小结USE_DEFAULTS的作用如下

    1.1K20
    领券