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

Is ISSET necessary if an array variable is already set?

我一直在学习 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 不是必需的。
还是我遗漏了什么?

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

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

不,没有必要。 isset() 函数用于检查变量是否已设置。在这种情况下,它将 return 为真。

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

但是,如果您的变量为 0,并且您要检查它是否已设置,那么它会 return false 但 if(isset($foo)) 会 return true。

希望对您有所帮助!

上述代码的

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

假设您有 html 表单,其后有一个提交按钮

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

然后您需要使用isset()

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