如果已经设置了数组变量,是否需要ISSET?

时间:2017-12-20 03:50:47

标签: php arrays isset

我一直在学习PHP变量和数组,并注意到通常会给出这样一个例子:

<?php
    $foo = 1;
    if (isset($foo)) {
        echo "Foo is set\n";
    } else {
        echo "Foo is not set\n";
    }
?>

既然$ foo已经在第2行设置为1,为什么还要检查它是否设置为isset?

当然,将变量设置为特定值就足够了: 例如。 $foo=1$myArray = [ ];

我理解初始化变量的重要性,以确保它们不包含不需要的值,我可以理解,在用户输入表单的情况下,您可能会得到空字段,而这需要是已选中,但是如果某个数组已由程序员填充数据(或已初始化),则肯定不需要isset
或者我错过了什么?

3 个答案:

答案 0 :(得分:1)

如果您确定已设置变量(如给出的示例中所示),则检查它是没有意义的。 isset应该用于外部输入,例如填写表单的用户输入或正在读取的配置文件,您无法确定变量是否已设置。

在这种情况下,对isset的调用毫无用处,可能只是出于教学目的而显示。

答案 1 :(得分:0)

不,没有必要。 isset()函数用于检查是否设置了变量。在这种情况下,它将返回true。

你可以做if($ foo),它会返回相同的结果。 如果变量中的值(在您的情况下是$ foo)是除0之外的任何其他值,则PHP中的条件语句返回true。

但是如果你的变量为0并且你要检查它的设置与否,那么它将返回false但是if(isset($foo))将返回true。

希望它有所帮助!

答案 2 :(得分:0)

上面代码的

isset()没有用,因为程序员知道$foo已经设置好了。在检查外部变量或全局变量的外部输入时非常有用。

假设您有一个带有以下提交按钮的html表单

<input type="submit" name="click">

然后,您需要使用isset()

检查点击的按钮
isset($_POST["click"]){
     // code
}