空($ _ POST)=== FALSE VS!空($ _ POST)

时间:2013-12-11 02:35:46

标签: php

我正在做一个教程,无论是谁编写它都会继续使用像

这样的代码
if (empty($_POST) === false)

为什么不使用

if(!empty($_POST))

这是否有理由让我失踪?使用第一种方法而不是第二种方法似乎不必要地混淆。

谢谢!

3 个答案:

答案 0 :(得分:2)

===强制进行类型检查。

例如

if(false == 0)//evaluates to true

if(false === 0)//evaluates to false

在上面的示例中,只需要执行!empty()与执行==相同(好吧,技术上!=)

那我们该怎么解释呢? 0可以表示值0或false,因为传统上0位表示false(1表示true,尽管现在任何非0都被认为是真的)。使用动态类型语言(如PHP)遇到的问题是没有对两个参数进行隐式类型检查,因此您可以将布尔值与数字进行比较,并在应该为假的情况下获得真实结果。

PHP中的strpos()函数是一个很重要的例子

答案 1 :(得分:1)

考虑到empty返回boolean,它确实没有任何区别。听起来有人只是过于完整。

答案 2 :(得分:0)

你可以使用

if ($_POST) { ...

但这没什么意义。

如果要从_POST中提取内容,请检查是否存在特定密钥。只知道post is not empty根本没有帮助。

相关问题