都是 5 个单词,不能从字数上编口诀....

isset 判断变量是否已存在,如果变量存在则返回 TRUE,否则返回 FALSE。

empty 判断变量是否为空,如果变量是非空 或非零 的值,则 empty() 返回 FALSE。换句话说,"" 、0 、"0"、NULL 、FALSE 、array() 、var $var,未定义以及没有任何属性的对象 都将被认为是空的,如果变量为空,则返回 TRUE。

“”算一个长度为 0 的字符串,是已经存在的值,这不是 null 或未赋值,也就是说对 isset 来说是 true(fasle 就是 null 和未赋值啦) empty 更加强大了,只要变量是""或者 0,或者是 false 和 null,只要是这些值 empty 都会返回 true。 就是说 empty 在 isset 的基础上更上一层,判断却想法,empty 空才 true,isset 空未 fasle,这里的空两者含义不同

isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING'] != ""

$_SERVER['QUERY_STRING']先判断是否存在,存在也可能是“” 而这句话经过优化,只需要这样即可

!empty($_SERVER['QUERY_STRING'])

可以说,empty 有 py,因为 py 更加强大,因此空虚才是真,不虚才有真颜色(s) Image

虽然这么说,但也不能否认 isset 的存在,因为在判断“”,0,fasle 这些来说,isset 都是 true,挺有用的。