为了检查输入字段是否为空或具有任何值,以下两种方法是否以相同的方式工作?还是他们中的任何一个比其他的更好?
if ($options['url']) {
..
}
或
if ( isset ($options['url']) && ($options['url']!="") ) {
..
}
如果不与isset()
核实,如果$options
不是数组或索引url
不存在,您至少会收到一条通知消息。所以应该使用isset()
。
您也可以使用
if (! empty($options['url'])) {
...
}
Empty() 检查任何假值(如空字符串、未定义等)。
Isset 确定变量是否不为 NULL 并已设置。
($options['url']) 确定变量是否返回 true
下面的代码仅检查值(假设键存在)是否为真。如果密钥不存在,将触发通知。 if ($options['url']) { .. }
isset
会告诉您键是否存在并且值不为 null。
我会使用 empty
因为如果键不存在,它将返回 false,如果键确实存在但值为空,它也将返回 false。
No.
$options['url']!=""
检查变量是否为空,
而isset($options['url'])
检查变量是否已设置或不是 NULL。
无论如何,始终对可能存在或不存在的变量或数组键调用isset()
必须成为规则。
或者你会收到所有这些"未定义"的警告......
以下内容就足够了:
if (isset($options["url"]) && $options["url"]) {
// ...
}
isset()
用于检查数组中是否存在特定键(并避免未定义的索引通知)。这是一个很好的编程实践。在这种情况下,您也可以使用array_key_exist()
函数,但isset
通常更快。在布尔上下文中使用
$options['url']
等表达式时,将检查其真实性(请参阅转换为布尔值部分)。empty()
函数为大多数表达式生成相同的结果。