编写这样的 PHP 条件有什么好处:
if ($variable != NULL) {
相对
if (!empty($variable)) {
相对
if ($variable) {
他们不都是一样的吗?如果您只是想判断变量是否存在,似乎最后一个总是最简单的。感谢您帮助我了解这里的区别。我错过了 PHP 101 的第一天。
编写这样的 PHP 条件有什么好处:
if ($variable != NULL) {
相对
if (!empty($variable)) {
相对
if ($variable) {
他们不都是一样的吗?如果您只是想判断变量是否存在,似乎最后一个总是最简单的。感谢您帮助我了解这里的区别。我错过了 PHP 101 的第一天。
查看此表以了解 PHP 比较运算符。false、0、""、NULL 和未定义的变量之间存在许多细微差别。
我同意肖恩的观点,但我会用简单的英语概述每个人的作用:
if ($variable != NULL) {
$variable
NULL
如果尚未设置,将是。这实际上与isset
未定义的变量相同且相同。
if (!empty($variable)) {
通常,这会检查$variable
字符串 ( (string) $variable
) 的 a是否为strlen
0。但是true
会使其返回false
,非 0 的整数和空数组也是如此。出于某种原因(我认为这是错误的)$variable = '0';
将返回true
.
if ($variable) {
这种真/假检查的作用类似于(boolean) $variable
- 基本上变量在转换为布尔值时是否返回真。
考虑它的一种方法是它的行为与空相同,只是返回相反的值。
有关我所说的(boolean) $variable
(类型转换/杂耍)的更多信息,请参阅本手册页。
(PHP开发人员:这主要是凭记忆,如果我在这里错了,请纠正我!)
在严格错误模式 (E_STRICT) 下运行时,子句
if ($variable) {}
和
if ($variable != null) {}
当这些变量未初始化时,会抛出通知。
Notice: Undefined variable: variable
这些通知是代码缺陷的指标,因为使用未初始化是一个可能的安全漏洞。(关键字:register_globals)。
我最喜欢检查变量是否存在的是
if (isset($variable)) {}
这将检查该变量是否曾被使用过(读取:使用值初始化!= null)。
基本上,它们在处理空值、空值、零和布尔值时是不一样的。