你能帮我改进我的编码风格吗?:) 在我需要检查的一些任务中 - 变量是空的还是包含一些东西。为了解决这个任务,我通常会做以下事情。

检查 - 这个变量是否设置?如果它已设置 - 我检查 - 它是否为空?

<?php
    $var = '23';
    if (isset($var)&&!empty($var)){
        echo 'not empty';
    }else{
        echo 'is not set or empty';
    }
?>

我有一个问题 - 我应该在 empty() 之前使用 isset() - 有必要吗?蒂亚!

最佳答案

这取决于您要查找的内容,如果您只是想查看它是否为空,请使用 empty ,因为它会检查它是否也已设置,如果您想知道是否设置了某些内容,请使用 isset
Empty 检查变量是否已设置,如果是,则检查它是否为空、""、0 等
Isset 只是检查它是否设置,它可以是任何不为空的

对于 empty ,以下内容被认为是空的:

  • ""(空字符串)
  • 0(0为整数)
  • 0.0 (0 作为浮点数)
  • "0"(0 作为字符串)
  • NULL
  • 错误
  • array()(空数组)
  • var $var; (声明的变量,但在类中没有值)

  • 来自 http://php.net/manual/en/function.empty.php

    正如评论中提到的,对于 empty() 来说,没有警告也很重要

    PHP Manual



    关于 isset

    PHP Manual



    你的代码会很好,因为:
    <?php
        $var = '23';
        if (!empty($var)){
            echo 'not empty';
        }else{
            echo 'is not set or empty';
        }
    ?>
    

    例如:
    $var = "";
    
    if(empty($var)) // true because "" is considered empty
     {...}
    if(isset($var)) //true because var is set
     {...}
    
    if(empty($otherVar)) //true because $otherVar is null
     {...}
    if(isset($otherVar)) //false because $otherVar is not set
     {...}
    

    关于php - isset() 和 empty() - 使用什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7191626/

    10-13 00:19