【问题标题】:What is the proper way to check a variable in a PHP if statement?在 PHP if 语句中检查变量的正确方法是什么?
【发布时间】:2021-09-18 03:50:43
【问题描述】:

我总是在 IF 语句中检查变量,如下所示:

if($myvar == 1) {

但是,我最近遇到了一个总是像这样编写 IF 语句的人:

if(isset($myvar) && $myvar == 1) {

这似乎是多余的,例如询问某人是否有银行账户,然后询问他们的银行账户中是否有 20 美元。我唯一的另一个想法是,这可能是检查变量的正确方法,而我从未被教过。大家怎么看?哪种方式更好?

【问题讨论】:

  • isset 在不确定变量是否已设置时很有用,例如在控制结构(if、else、循环)中创建变量时。它的使用通常是情境性的。
  • 在您的问题中,您假设此人肯定已经拥有银行帐户。但是,如果他们不这样做呢?这同样适用于代码。如果您 100% 确定存在该变量,则它是多余的。如果你不能确定你将不得不检查。
  • 嗯,原来我们所在的服务器已经开启了E_NOTICE,而我之前工作过的所有服务器都关闭了它。当您检查未设置的变量时,这会有所不同。

标签: php if-statement variables


【解决方案1】:

判断哪个更好是主观的。让我们坚持事实:

if ($foo === 1) {
    //...
}

假设 $foo 已经作为变量存在。如果这是事实已知的,那么就没有理由检查它的存在。但是,如果你不知道变量是否存在,那么你需要检查它是否存在,比如

if (isset($foo) && ($foo === 1)) {
    //...
}

如果变量不存在并且不会出错,则第二个将评估为 false。它比第一个更丑,但更安全。这种防御方法在大多数情况下不一定,所以当你看到这样的代码时,想想我们对那个变量的了解。是否保证在所有情况下都能正确启动?如果是这样,那么您不需要检查它的存在。如果没有,那么您需要检查它是否存在。

【讨论】:

    【解决方案2】:

    这是检查 if 语句中是否存在变量的最佳方法 check refer here isset

    if (isset($variablecheck)) 
    {
    // some code here
    }
    

    【讨论】:

      猜你喜欢
      • 2017-04-06
      • 1970-01-01
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多