比较PHP的isset()、empty()和is_null()函数
您将在几乎每个使用 PHP 编写的程序中使用变量。大多数时候这些变量都有一个值,我们通常用一个初始值来创建它们。但是,您使用的某些变量始终有可能未初始化。这可能会导致 PHP 发出有关使用未定义变量的警告。
未定义变量的原因可能有很多。最常见的问题是您实际上没有定义该变量,或者在其他地方重用它时犯了拼写错误。这只是一个编程错误。然而,另一种可能导致未定义变量的可能性是它是有条件定义的。
您还可能会发现变量的值为 NULL
。发生这种情况的原因有多种。例如,变量可能只是尚未用值初始化。或者函数可能会返回空值来表示某种错误。
无论如何,在定义变量之前或当变量具有空值时使用变量可能会产生意想不到的后果。在本教程中,我将向您展示如何检查元素是否已定义并查看它是否为空或 null。
您可以使用 isset()
、empty()
或 is_null()
来检查其中一个或所有条件是否为真或假。
定义
让我们开始一些定义。
-
isset()
:您可以使用isset()
来确定变量是否已声明并且与null
不同。 -
empty()
:用于判断变量是否存在且变量的值不等于false
。 -
is_null()
:该函数用于检查变量是否为null
。
PHP isset()
与 empty()
正如我们从定义中看到的,如果我们之前定义了该变量并将其值设置为 NULL
以外的值,则 isset()
将返回 true
。这可以包括 0
、空字符串或 false
。另一方面,每当变量值设置为计算结果为 false
时,empty()
将返回 true
— 我们称这些为“假”值。 falsey 值的示例包括 0
、空字符串 ""
和字符串 "0"
、空数组、NULL
,或者当然是布尔值 false
以外的值,则 isset()
将返回 true
。这可以包括 0
、空字符串或 false
。另一方面,每当变量值设置为计算结果为 false
时,
true
— 我们称这些为“假”值。 falsey 值的示例包括 0
、空字符串 ""
和字符串 "0"
、空数组、,或者当然是布尔值 false
。isset()
和 empty()
之间的一个相似之处是它们都是语言结构,因此不能使用变量函数进行调用。
下面的代码片段应该解释这两者之间的区别。empty()
可以使用 isset()
<?php $fruit = ''; if(isset($fruit)) { echo 'Do you like '.$fruit.'?'; } // Output: Do you like ? if(!empty($fruit)) { echo 'Do you like '.$fruit.'?'; } // No Output ?>
函数编写:empty()
<?php function my_empty($x) { return !isset($x) || $x == false } ?>
函数会更容易。isset()
与 is_null()
PHP
NULL
,则 is_null()
函数将返回 true
。否则,它只是返回 false
。另一方面,只要定义了变量并且其值不为 NULL
,isset()
就会返回 true
,则 is_null()
函数将返回 true
。否则,它只是返回 false
。另一方面,只要定义了变量并且其值不为
isset()
就会返回 true
。
empty()
与 is_null()
这是一个基本示例来显示它们之间的差异。
<?php $fruit = NULL; if(isset($fruit)) { echo 'Do you like '.$fruit.'?'; } // No Output if(is_null($fruit)) { echo 'There is no fruit.'; } // Output: There is no fruit. ?>
PHP false
,则 empty()
函数将返回 true
。这可能意味着空字符串、NULL
、整数 0
或没有元素的数组。另一方面,仅当变量的值为 NULL
时,is_null()
才会返回 true
与 is_null()
如果变量的值计算结果为 false
,则
true
。这可能意味着空字符串、、整数 0
或没有元素的数组。另一方面,仅当变量的值为
时,is_null()
才会返回 true
。这是一个基本示例来显示它们之间的差异。
<?php $person = ['first_name' => 'Monty', 'last_name' => '', 'age' => '83', 'fav_movie' => NULL]; if(empty($person['last_name'])) { if(is_null($person['last_name'])) { echo 'The last name is set to NULL.'; } else { echo 'The last name is probably an empty string.'; } } // Output: The last name is probably an empty string. if(is_null($person['fav_movie'])) { echo $person['first_name'].' did not specify a favorite movie.'; } // Output: Monty did not specify a favorite movie.
empty()
和 is_null()
不同,您可以一次向 isset()
传递多个值,以同时检查其中是否有任何未定义或设置为 NULL
。在这种情况下,如果传递的值都不是 NULL
,则 isset()
将仅返回 true
要记住的重要要点
您可以使用两个技巧来编写更简洁的代码并避免将来出现错误。==
来检查值是否为 NULL
。这将为错误值(例如计算为 false
和 is_null()
不同,您可以一次向 isset()
传递多个值,以同时检查其中是否有任何未定义或设置为
。在这种情况下,如果传递的值都不是 ,则 isset()
将仅返回 true
。isset()
、empty()
和 is_null()
==
来检查值是否为 🎜。这将为错误值(例如计算为 false
的空字符串)提供误报。🎜
🎜最终想法🎜
🎜本教程快速解释了 isset()
、🎜 和 is_null()
之间的区别。希望您现在能够确定其中哪一个最适合您在代码中使用。🎜以上是比较PHP的isset()、empty()和is_null()函数的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

会话劫持可以通过以下步骤实现:1.获取会话ID,2.使用会话ID,3.保持会话活跃。在PHP中防范会话劫持的方法包括:1.使用session_regenerate_id()函数重新生成会话ID,2.通过数据库存储会话数据,3.确保所有会话数据通过HTTPS传输。

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

在PHPStorm中如何进行CLI模式的调试?在使用PHPStorm进行开发时,有时我们需要在命令行界面(CLI)模式下调试PHP�...

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

使用PHP的cURL库发送JSON数据在PHP开发中,经常需要与外部API进行交互,其中一种常见的方式是使用cURL库发送POST�...
