以下两个陈述是否相似?
if (isset($someValue) && $someValue != '')
和
if(!empty($someValue]))
答案 0 :(得分:3)
null
加上是否为空字符串。如果$_GET['act']
未设置或位于documentation page上列为空的变量列表中,则第二个为真。
同一文档页面中的以下示例应填补空白:
$var = 0;
// Evaluates to true because $var is empty
if (empty($var)) {
echo '$var is either 0, empty, or not set at all';
}
// Evaluates as true because $var is set
if (isset($var)) {
echo '$var is set even though it is empty';
}
答案 1 :(得分:2)
除0
值之外的其他类似内容。
$var = "0";
(!empty($var)) === false;
(isset($var) && $var!='') === true;
答案 2 :(得分:1)
当你写它时,它们实际上几乎相反,但我只是假设你的意思是isset($_GET[someValue])
和!empty
。
在那种情况下不,他们不一样。在第一行中,您正在检查空字符串,但是例如将传递零值。但是,零值计为空。
答案 3 :(得分:1)
相似但不一样。如果$_GET['act']
等于以下任何一项,则Empty将返回true:
第一个只检查变量是否已创建且不等于空字符串。