可能是一个愚蠢的问题,但我似乎无法找到一个直接的答案。
$id != ""
与!empty($id)
相同吗?
使用if(isset($id) && !empty($id))
确定变量是否设置且不为空/空也是正确的吗?
答案 0 :(得分:6)
没有。 empty()
涵盖了除空字符串之外的许多其他条件。 http://php.net/manual/en/function.empty.php来自文档:
""
(空字符串)0
(0为整数)0.0
(0作为浮动)"0"
(0为字符串)NULL
FALSE
array()
(空数组)$var;
(声明的变量,但没有值)另外,如果你想告诉变量是否为“空”,那么只需要empty()
。也不需要isset()
。
答案 1 :(得分:2)
Humm:简而言之,
if($var)
表示如果$var
的值为 TRUE ,则
if(!$var)
表示,如果$var
的值为 FALSE
if(empty($var))
和if(!empty($var))
类似地尝试检查$var
是否具有任何值,或者它们是否为空。
$var = ''; // false
$var = '1' // true
$var; // empty
$var = '1' // not empty
更多信息,请访问PHP Manual
一些例子包括:
<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
?>
答案 2 :(得分:1)
empty
将返回true,因此无需仔细检查它。
只需使用if ( ! empty($id) )
答案 3 :(得分:1)
$ id!=“”与!empty($ id)相同吗?
不,empty
测试所有形式的空。因此它也会在0
或null
上触发。使用!=
与空字符串进行比较将根据$id
的字符串转换执行比较。
使用if(isset($ id)&amp;&amp;!empty($ id))确定变量是否设置且不为空/ null也是正确的吗?
不是真的,这个条件只测试$id
是否已设置但是不包含空字符串,或字符串"0"
,或整数/浮点0
值,或者是会转换为整数0
,例如布尔false
。
有一个非常详尽的列表over on PHP.net,其值被视为empty
。
答案 4 :(得分:0)
首先,$id != ""
与!empty($id)
不同。不同之处在于,如果未设置$ id,则第一个示例将抛出通知,表示您正在使用未定义的变量而第二个示例将不会。
其次,如果同时使用isset()和empty()是正确的,但它是多余的,因为如果变量未定义,则empty将不会发出通知。
希望这对你有所帮助!
祝你好运,编码愉快:P