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

问题描述 投票:1回答:3

我一直在学习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。 或者我错过了什么?

php arrays isset
3个回答
1
投票

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

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


0
投票

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

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

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

希望能帮助到你!


0
投票

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

假设您有一个html表单,其中包含一个以下提交按钮

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

然后你需要检查点击或不使用isset()按钮

isset($_POST["click"]){
     // code
}
© www.soinside.com 2019 - 2024. All rights reserved.