在哪里应该使用isset()和!empty()?

13 浏览
0 Comments

在哪里应该使用isset()和!empty()?

我在某个地方读到,isset()函数将空字符串视为TRUE,因此isset()不是验证HTML表单中的文本输入和文本框的有效方法。

所以你可以使用empty()来检查用户是否输入了内容。

  1. isset()函数将空字符串视为TRUE,这是真的吗?
  2. 那么在什么情况下应该使用isset()?我是否应该始终使用!empty()来检查是否有内容?

例如,不是使用:

if(isset($_GET['gender']))...

而是使用:

if(!empty($_GET['gender']))...

0
0 Comments

在PHP中,我们经常需要检查一个变量是否已经设置并且非空。为了实现这个目的,我们可以使用isset()和!empty()这两个函数。然而,有些情况下我们可能会混淆它们的用法,导致出现一些问题。

首先,在PHP 5.5之前,isset()只能用于检查变量是否已经设置,而不是检查变量的值是否为空。所以,当我们使用isset()来检查一个字符串时,将会出现错误。例如,isset("foobar")将会报错。而在PHP 5.5之后,empty()函数同时支持变量和表达式的检查。

然而,我们可能会遇到一个问题,就是当一个变量的值为空字符串时,isset()函数是否会返回true。答案是会的。下面的代码可以证明这一点:

$var = "";
var_dump(isset($var));

通过运行上面的代码,我们可以看到isset()函数确实返回了true。

在PHP手册的类型比较表中,我们可以找到关于这个问题的详细解释。

简单来说,isset()函数检查一个变量是否有值,除了null之外的任何值都算有值。而empty()函数则是isset()函数的对立面,它将0和字符串"0"也视为空值。同样,在PHP手册的类型比较表中可以找到更详细的信息。

需要注意的是,从PHP 5.5.0版本开始,empty()函数也支持表达式的判断,而不仅仅是变量。

isset()和!empty()函数是用于检查变量是否已经设置并且非空的。在使用它们的时候,我们需要注意它们的用法和区别,以免引起一些问题。可以通过查阅PHP手册中的类型比较表来获取更详细的信息。

0
0 Comments

在什么情况下应该使用isset()和!empty()函数?

isset()函数用于检查一个变量是否有值,包括False、0或空字符串,但不包括NULL。如果变量存在且不为NULL,则返回TRUE;否则返回FALSE。

而empty()函数则是isset()函数的相反操作(即!isset()),并且还会额外检查一个值是否为空。这里的空包括空字符串、0、NULL、false、空数组或空对象。如果变量被设置且具有非空且非零值,则返回FALSE;否则返回TRUE。

根据上述内容,我们可以看出empty()函数还会将空数组判断为TRUE。尽管empty()函数将0判断为TRUE,但在数学计算中不建议使用此运算符,因为"0"可能会意外地是一个字符串,这可能是危险的。相反,应使用基本的大于(>)、小于(<)和等于(==)运算符,并使用intval()或floatval()函数将变量转换为数值类型。

总结起来,isset()函数用于检查变量是否存在且不为NULL,而empty()函数则用于检查变量是否为空或为零。在使用empty()函数时,需要注意其对0和空数组的判断,以及避免在数学计算中使用empty()函数。

以下是示例代码:

$var = "";
if (isset($var)) {
    echo "The variable is set and not NULL.";
} else {
    echo "The variable is either not set or is NULL.";
}
if (!empty($var)) {
    echo "The variable is not empty or zero.";
} else {
    echo "The variable is either empty or zero.";
}

以上代码将根据变量$var的值输出相应的结果。

0
0 Comments

在何处应该使用 isset() 和 !empty() 的问题主要出现在需要确定变量是否存在,并且不为空的情况下。下面是解决这个问题的方法。

首先,isset() 函数用于测试变量(或数组中的元素,或对象的属性)是否存在(且不为 null)。而 empty() 函数用于测试变量是否未设置或者是否包含一个类似空的值。

问题1的回答如下:

$str = '';
var_dump(isset($str));

输出结果是 `boolean true`,因为变量 `$str` 存在。

问题2的解决方法如下:

在需要确定变量是否存在的情况下,应该使用 isset() 函数。例如,如果你从一个数组中获取一些数据,你可能需要检查该数组中的某个键是否已经设置(且其值不为 null)。

考虑一下 `$_GET` / `$_POST`,例如。

如果你想确定一个变量是否存在且不为空,那么应该使用 empty() 函数。

0