为了检查输入字段是否为空或具有任何值,以下两种方法是否会以相同的方式工作?或者他们中的任何一个比其他人更好?
if ($options['url']) {
..
}
或
if ( isset ($options['url']) && ($options['url']!="") ) {
..
}
答案 0 :(得分:2)
如果isset()
不是数组或索引$options
不存在,则不使用url
进行检查,您将至少收到通知消息。所以应该使用isset()
。
您也可以使用
if (! empty($options['url'])) {
...
}
Empty()检查任何错误值(如空字符串,未定义等等)。
答案 1 :(得分:1)
Isset确定变量是否为NULL并且已设置。
($ options ['url'])确定变量是否返回true
答案 2 :(得分:1)
以下代码仅检查假设密钥存在的值为true。如果密钥不存在,将触发通知。 if($ options ['url']){ .. }
isset
将告诉您密钥是否存在且值是否为空。
我使用empty
,因为如果密钥不存在,它将返回false,如果密钥确实存在但值仍为空,它也将返回false。
答案 3 :(得分:1)
没有
$options['url']!=""
检查变量是否为空,
isset($options['url'])
检查变量是设置还是非空。
isset()
必须是规则。或者你会得到所有那些'未定义'的警告......
答案 4 :(得分:1)
以下就足够了:
if (isset($options["url"]) && $options["url"]) {
// ...
}
isset()
用于检查数组中是否存在特定键(并避免未定义索引通知)。这是一个很好的编程实践。在这种情况下,您也可以使用array_key_exist()
功能,但isset
通常更快。
在布尔上下文中使用$options['url']
等表达式时;检查其真实性(参见converting to boolean section)。 empty()
函数为大多数表达式生成相同的结果。